Add object-based command handling, work on more dynamic descriptions