added hashCde, equals and toString methods