Add ability to have multiple observers
Add a spec for things being removed from GC
Ensure references etc are cleaned up and add scripts for cleaning up
Don't need this as we have a script test