Add game types, templates and refactoring code