Changed BaseState and BaseMenu into interfaces