add cleanup logic on scope destroy