updated with Negation Handling