Improve command system
That really needed some cleaning up!