Moved some classes around for better cross-platform structure.