diff --git a/lib/controls/document.js b/lib/controls/document.js
index <HASH>..<HASH> 100644
--- a/lib/controls/document.js
+++ b/lib/controls/document.js
@@ -21,3 +21,24 @@ function Document(container) {
 
 Document.prototype = Object.create(UIElement.prototype);
 Document.prototype.constructor = Document;
+
+Document.prototype.addDef = function (defsMarkup) {
+  if (!defsMarkup) throw new Error('DefsMarkup is required argument for Document.addDef() method');
+
+  var defs = getDefsElement(this._dom);
+  var defContent = require('../utils/domParser')(defsMarkup);
+  for (var i = 0; i < defContent.length; ++i) {
+    defs.appendChild(defContent[i]);
+  }
+};
+
+function getDefsElement(svgRoot) {
+  var children = svgRoot.childNodes;
+  for (var i = 0; children.length; ++i) {
+    if (children[i].localName === 'defs') return children[i];
+  }
+
+  var defs = require('../utils/svg')('defs');
+  svgRoot.appendChild(defs);
+  return defs;
+}
Added `addDef` method