Renamed Generic Types Correctly
Fixed a few return statements
Tried to reduce complexity in GameObject equals method