Main2: new approach: Interface for commands and command-specific implementation
Main3: commands are anonymous classes now