private void mergeActual(INodePrivate me, INodePrivate other) {
        for(Map.Entry<String,INodePrivate> e : other.getChildren().entrySet()) {
            String key = e.getKey();
            INodePrivate otherChild = e.getValue();

            if (me.getChildrenCopy().containsKey(key)) {
                INodePrivate myChild = me.getChildren().get(key);
                mergeActual(myChild, otherChild);
            } else
                me.addChild(otherChild);
        }
    }