Add some GUI code, and equals() and hashCode()