nearly finished gameController()