added abstract class for game type + interface for visual game