big refactoring, introduce transitions
2.0.0