refactor to include support for differente gameplays