added __hash__
Added __eq__
Added __str__
Added __repr__