Implemented overrides of ToString, Equals and GetHashCode