splitted input class in one base class and one sub class per game state