Adding entity trait and entity interface

+ improving object structure
+ add fluent interface to GeneratorAggregator::addGenerator