move shared commentable model code into model concerns