Finished, upgrades currently can't double back on themselves, which prevents certain corner cases from functioning the way I want them to, but whatever