Added base Publisher abstract class