To be honest we do not need state_machine