changed == operator to check semantic equivalence
all tests green even tricky ones
changes