support MutationObserver