Cleaned up equals method