added some template classes for the core of the game