Replaced plugins with a pubsub framework.