SVG.extend(SVG.Parent, { ungroup: function(parent, depth) { if(depth === 0 || this instanceof SVG.Defs) return this parent = parent || (this instanceof SVG.Doc ? this : this.parent(SVG.Parent)) depth = depth || Infinity this.each(function(){ if(this instanceof SVG.Defs) return this if(this instanceof SVG.Parent) return this.ungroup(parent, depth-1) return this.toParent(parent) }) this.node.firstChild || this.remove() return this }, flatten: function(parent, depth) { return this.ungroup(parent, depth) } })