Move the system route provider stuff into its own class

This doesn't work, but I'm not ready to give up on it yet