move persistence check into `meets_criteria`

fixes #2