created: small image
refactoring
added: using single CodeGeneratorFactory
added: common base class ExtendedCodeGenerator
refactoring