refactor out gameplay