Better command system implementation

Signed-off-by: Gerco van Heerdt <gercovanheerdt@gmail.com>