BaseState design