Cleaned up API - moved all commands into Commands module and turned non-commands into classes