this.dom = this.createDOM();
     this.dom.data('canvas-element', this);
+    this.wlxmlNode.setData('canvasElement', this);
 };
 
 $.extend(DocumentElement.prototype, {
 // DocumentNodeElement represents an element node from WLXML document rendered inside Canvas
 var DocumentNodeElement = function(wlxmlNode, canvas) {
     DocumentElement.call(this, wlxmlNode, canvas);
-    wlxmlNode.setData('canvasElement', this);
     this.init(this.dom);
 };
 
 
         }
     },
     onNodeTextChange: function(event) {
-        var node = event.meta.node,
-            toSet = node.getText(),
-            handled;
-        
-        handled = this.children().some(function(child) {
-            if(child.wlxmlNode.sameNode(node)) {
-                if(toSet === '') {
-                    toSet = utils.unicode.ZWS;
-                }
-                if(toSet !== child.getText()) {
-                    child.setText(toSet);
-                }
-                return true;
-            }
-        });
+        var node = event.meta.node;
 
-        if(!handled && node.parent() && node.parent().is('comment') && this.wlxmlNode.sameNode(node.parent().parent())) {
+        /* TODO: This handling of changes to the comments should probably be implemented via separate,
+        non-rendering comments element */
+        if(node.parent() && node.parent().is('comment') && this.wlxmlNode.sameNode(node.parent().parent())) {
             this.commentsView.render();
         }
     },
 
     return null;
 };
 
-var getElementForElementRootNode = function(node, withParent) {
-    if(node.nodeType === Node.TEXT_NODE) {
-        return _getElementForRootTextNode(node, withParent);
-    }
+var getElementForElementRootNode = function(node) {
     return node.getData('canvasElement');
 };
 
-var _getElementForRootTextNode = function(textNode, withParent) {
-    var parentElement = getElementForNode(withParent || textNode.parent()),
-        toret;
-    parentElement.children().some(function(child) {
-        if(child.wlxmlNode.sameNode(textNode)) {
-            toret = child;
-            return true;
-        }
-    });
-    return toret;
-};
-
-var getElementForNode = function(node, withParent) {
-    if(node.nodeType === Node.TEXT_NODE) {
-        return _getElementForTextNode(node, withParent);
-    }
+var getElementForNode = function(node) {
     while(!node.getData('canvasElement')) {
         node = node.parent();
     }
     return node.getData('canvasElement');
 };
 
-var _getElementForTextNode = function(textNode, withParent) {
-    var parentElement = getElementForNode(withParent || textNode.parent()),
-        toret;
-    parentElement.children().some(function(child) {
-        if(child.wlxmlNode.sameNode(textNode)) {
-            toret = child;
-            return true;
-        }
-    });
-    return toret || parentElement;
-};
-
 var getElementForDetachedNode = function(node, originalParent) {
     var ptr = originalParent;
     if(ptr === null) {