Added lazy evaluation to boolean operators