I left the FSM intentionally open for pooling. There are cases when you might have use for a number of parallel FSMs. One case from the top of my head are status effects. You could create a 'PoisonedState' that damages the player over time but does not interfere with FSMs handling movement, for instance.