allow editors to add cm protocol. had to do some refactoring for that - move code related to post-processing of cm to make it reusable.