Implemented state-change logic