refactored game classes