querySelectAll() returns a NodeList. A node list will change if you mutate the DOM. You are mutating the DOM in transformHeadings, and you are looping over the NodeList while doing it. Very fragile situation. But no worries, just use ```Arrays.coerce(element.querySelectorAll(...))``` to get a real array (or better make a helper function in dom.js that does it to increase compressibility).