Swapped everything to mutation observers and fixed everything