factored out GenerationParser
basic validation in generation parser
additional validation in generation parser
improved validation
refactoring: introduced Generation abstraction