Finite State Machine inspired by boost::statechart, but much faster (compile & work) and without memory allocations at all.