refactored PublishSubscriber and Base to automate publish/subscribe mechanism
removed redundant painter method, createBrush, yes\!