YJ- updated Point's hashCode() to be a perfect hash