add publisher/subscriber helper classes