Break up PublishTask, clean up namespace