Add AbstractDayState and move DayStateInterface to a State namespace