changed from plugin hooks in content model to using concerns

See concerto/concerto#1014