Refactor

- Move socket events into their own classes
- Give Users a reference to the system they're in