Removed Some Generics, added to Upgrades System

Generics was very annoying and not really cooperation, so I just
outright removed it and added instanceof and casts instead. Also added
to the upgrades system. We need more ideas too!