alias eql? to ==, implement hash for Message