BasicGenerator refactoring

This refactoring allows to more customize usage of generators. Because now there is almost no place to plugin and customize flow of generation. It for example facilitates introduction of sample request-response generator because of course I can put my code inside some override method but it would be side effect. With this modification it is easier to write custom flow without code duplication.