added instance builder
moved code into AbstractGenerator, created GeneratorInterface
renamed LocatorGenerator to Generator and prepared factory