Moved publish/unpublish in to separate controller, extracted controller exceptions