added basic classes for publisher/subscriber