move mutationobserver to leaner architecture