TODO: check the current state
TODO: check the current state