add end game condition
separate controllers into modules