The trait is representing the basic operation for the state machine.
It includes getting its current state, transition to the next state,
resetting its current state to initial state and setting particular state forcibly.
BasicStateMachine is a good example to implement it.
Of course, you can build your own state machine by using this trait.