Checkpoint
Started to abstract controller logic into appropriate components
Major update