Cleanroom

This is not the nicest way to do clean up. It's not very DRY in some places and could really do with a refactor if we move to the Service/Provider as classes model. For now, with how the Service class (etc) is structured, this is about as good as I can do, I think
This will be annoying to debug.