add hash and eql methods to shapes