Feature/state transition machine

What about `StatefulInterface` or `StatefulLinesInterface` ?