Re-sorting causes oddities like https://github.com/Simply-Love/Simply-Love-SM5/issues/362
Clang works with libstdc++.
Before, this ended up calling a virtual method in the constructor, which C++ does not allow, and I got weird crashes. This removes a lot of unused code and gets rid of unnecessary abstractions.