Added IState and WanderingState with update method