rolled back has() and hasNot() to take T object