Make command interactive

This is a step towards correct support for Live mode.

Note while at it I reorganized the layout of the method implementations.