Add destroy method, major bugfixes on {observed}, successFn, failureFn