adding mutation observers and interpolation