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
Also, add "and answering on specified port" to the docstring, otherwise it's not clear what the difference to `get_or_create_container` is.