format change, added toString, equals and hashCode