add three statemachine base class