implemented recursive not, disj and conj handling