factored out into separate files (rather than one big gameModule file)