Repository navigation
- Add generic builder methods. It allows to control which classes are provided as states
- Support inheritanced classes. For example, now you can have different states which inherited from one and provide that one as first state. And in runtime it will be downcasted to child class.