add statemachine interface