void visit(Expression * node) {
        VariableExpression *expr = freecad_dynamic_cast<VariableExpression>(node);

        if (expr) {
            const App::ObjectIdentifier & oldPath = expr->getPath().canonicalPath();
            const std::map<ObjectIdentifier, ObjectIdentifier>::const_iterator it = paths.find(oldPath);

            if (it != paths.end())
                expr->setPath(it->second.relativeTo(owner));
        }
    }