more criteria refactoring