no longer need to check for double meaning of cat_id
throw dataobjectnotfoundexception instead of returning null
move delete logic into model