For simple adding of a protocol to a class you can always just use (extend-class)
Proxies are simple and work well in other cases.
the gen-class documentation is a bit confusing, it helped me to look @ some examples. I used a different site that I can't find now, but this one seems helpful.
http://kotka.de/blog/2010/02/gen-class_how_it_works_and_how_...