Initial version.

Uses standard command handlers mechanism, probably not satisfactory
for real code.