finished implementing most of game