adding a factory contract to ease future refactoring
doc for the factory
adding a default trait for Colleague in mediator