Added hash support and rich comparisons