State machine feature

:D