+ implement to string, equals and gethashcode methods. closes #5