Abstract model behaviour in to parent Couch::Model class