Added watch_ptr and removed the terrible old reference cleanup procedure