-            toBlock.forEach(function(tagName) {
-                tagName = tagName.toLowerCase();
-                console.log('running ' + tagName);
-                toret.find(tagName).replaceWith(function() {
-                    var currentTag = $(this);
-                    if(currentTag.attr('wlxml-tag'))
-                        return;
-                    var toret = $('<div></div>').attr('wlxml-tag', tagName);
-                    if(currentTag.attr('class'))
-                        toret.attr('wlxml-class', currentTag.attr('class').replace(/\./g, '-'));
-                    toret.append(currentTag.contents());
-                    return toret;
+            var transform = function(tags, replacingTagName) {
+                tags.forEach(function(tagName) {
+                    tagName = tagName.toLowerCase();
+                    console.log('running ' + tagName);
+                    toret.find(tagName).replaceWith(function() {
+                        var currentTag = $(this);
+                        if(currentTag.attr('wlxml-tag'))
+                            return;
+                        var toret = $('<' + replacingTagName + '>').attr('wlxml-tag', tagName);
+                        toret.attr('id', 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);}));
+                        for(var i = 0; i < this.attributes.length; i++) {
+                            var attr = this.attributes.item(i);
+                            var value = attr.name === 'class' ? attr.value.replace(/\./g, '-') : attr.value;
+                            toret.attr('wlxml-' + attr.name, value)
+                        }
+                        toret.append(currentTag.contents());
+                        return toret;
+                    });