> Is it possible to avoid writing explicit Command objects by using (and > extending) "delegate"? Could the delegator take care of command-object > wrapping, so the callers still makes normal method calls? Have a look at madeleine/automatic.rb. It includes an interceptor module that can be mixed into the service you're using Madeleine with and all the methods are automatically turned into commands. Very nifty. Instiki uses this method. It goes one step further, though, and pulls all the Madeleine goodies into one MadeleineService class that you can inheirit from to have automatic snapshots setup automatically and convenience methods for accessing the service as a singleton and for clearing the database. You can get Instiki (with source of course) from http://instiki.rubyforge.org. -- David Heinemeier Hansson, http://www.basecamphq.com/ -- Web-based Project Management http://www.loudthinking.com/ -- Broadcasting Brain