Catch and log errors
Add watch destoy function

Refactor some common test code
Add some additional edge cases related to destroy functions