updated .equals and and generate hash. Should hopefully work now for both cases without the cheese i had before.  NEED TO TEST!!