Restructure, added MutationObserver