Reorganized
Commands in seperate classes
events in seperate calsses