Iterface and abtract classes for the game