add extra behaviours: autoincrement, softdelete, sortable pattern