added publisher, and some cleanup