Only teardown once set up has finished successfully.

AFAICS the `callbacks` array will now only ever include a single object - I think that allows simplification of the code and removal of the module `callbacks` array...