Add command processor

This PR introduces the command processor.
Targets #236 and #219.