Whole new project made properly with command objects