fixes #23. Introducing a command system.