Started Building Mediator, Factory method and abstract class