IPublisher is more independent of subscriber implementation. Now, the
subscriber is a generic parameter of class IPublisher. It means that all
IPublisher implementations will work for any type of subscriber.
Comment review
Changed location of Exceptions package
refactory
solving conflicts