diff --git a/src/com/mirantis/mcp/Calico.groovy b/src/com/mirantis/mcp/Calico.groovy
index 165eaf7..834ccd8 100644
--- a/src/com/mirantis/mcp/Calico.groovy
+++ b/src/com/mirantis/mcp/Calico.groovy
@@ -1,21 +1,5 @@
 package com.mirantis.mcp
 
-@Grab(group='org.yaml', module='snakeyaml', version='1.17')
-import org.yaml.snakeyaml.Yaml
-
-
-@NonCPS
-def loadYaml(String rawYaml) {
-  def yaml = new Yaml()
-  return yaml.load(rawYaml)
-}
-
-@NonCPS
-def dumpYaml(Map yamlMap) {
-  def yaml = new Yaml()
-  return yaml.dump(yamlMap)
-}
-
 
 /**
  * Checkout Calico repository stage
@@ -361,6 +345,7 @@
  *
  */
 def switchCalicoToDownstreamLibcalicoGo(String libCalicoGoCommit, String host, String glideLockFilePath) {
+  def common = new com.mirantis.mcp.Common()
   def git = new com.mirantis.mcp.Git()
 
   stage ('Switch to downstream libcalico-go') {
@@ -377,7 +362,7 @@
 
     sh "cp ${glideLockFilePath} ${glideLockFilePath}.bak"
     def glideLockFileContent = readFile file: glideLockFilePath
-    def glideMap = loadYaml(glideLockFileContent)
+    def glideMap = common.loadYAML(glideLockFileContent)
 
     for (goImport in glideMap['imports']) {
       if (goImport['name'].contains('libcalico-go')) {
@@ -386,7 +371,7 @@
       }
     }
 
-    writeFile file: glideLockFilePath, text: dumpYaml(glideMap)
+    writeFile file: glideLockFilePath, text: common.dumpYAML(glideMap)
 
     sh "LIBCALICOGO_PATH=${libcalicogo_path} make vendor"
   }
diff --git a/src/com/mirantis/mcp/Common.groovy b/src/com/mirantis/mcp/Common.groovy
index cc48fdc..597809c 100644
--- a/src/com/mirantis/mcp/Common.groovy
+++ b/src/com/mirantis/mcp/Common.groovy
@@ -1,5 +1,8 @@
 package com.mirantis.mcp
 
+@Grab(group='org.yaml', module='snakeyaml', version='1.17')
+import org.yaml.snakeyaml.Yaml
+
 /**
  * https://issues.jenkins-ci.org/browse/JENKINS-26481
  * fix groovy List.collect()
@@ -32,6 +35,26 @@
 }
 
 /**
+ * Convert YAML document to Map object
+ * @param data YAML string
+ */
+@NonCPS
+def loadYAML(String data) {
+  def yaml = new Yaml()
+  return yaml.load(data)
+}
+
+/**
+ * Convert Map object to YAML string
+ * @param map Map object
+ */
+@NonCPS
+def dumpYAML(Map map) {
+  def yaml = new Yaml()
+  return yaml.dump(map)
+}
+
+/**
  * Run function on k8s cluster
  *
  * @param config LinkedHashMap
