Add emitter base class and fluent interface
Factor fluent interface