@Override protected StateMachine<StateEvent, RouteFollowingVehicle> createStateMachine() { // when overriding, please see doc of super method! // reuse super implementation final StateMachine<StateEvent, RouteFollowingVehicle> fsm = super.createStateMachine(); // get ref to existing state final Wait wait = fsm.getStateOfType(Wait.class); // add new state final ExtraState extra = new ExtraState(); // add two new transitions return StateMachine.create(wait) .addTransition(wait, ExtraEvent.TEST_EVENT, extra) .addTransition(extra, DefaultEvent.DONE, wait) .addTransitionsFrom(fsm) .build(); }