intermediate - has just nearly implemented empty game