states and transitions, everything behaves correctly! :)