changed exception messages, added equals tests