Cleaned and commented. Added old mutation events if MutationObserver is not supported