Add remote class thanks to @aca20031
Add basic plugin system that doesn't get touched right now as it's not finished.
Refactor namespacing of a couple classes.