State class replaced with IState interface