diff --git a/vars/getVolthaImageFlags.groovy b/vars/getVolthaImageFlags.groovy
index c5ba815..7543615 100644
--- a/vars/getVolthaImageFlags.groovy
+++ b/vars/getVolthaImageFlags.groovy
@@ -17,38 +17,54 @@
 
 // returns the helm flags required to override a specific image
 String call(String project = 'unknown', String tag = 'citest', String pullPolicy = 'Never') {
-  def chart = 'unknown'
-  def image = 'unknown'
-  switch(project) {
-    case 'ofagent-go':
-      chart = 'voltha'
-      image = 'ofagent'
-    break
-    case 'voltha-go':
-      chart = 'voltha'
-      image = 'rw_core'
-    break
-    case 'voltha-openonu-adapter-go':
-      chart = 'voltha-adapter-openonu'
-      image = 'adapter_open_onu_go'
-    break
-    // TODO end
-    case 'voltha-openolt-adapter':
-      chart = 'voltha-adapter-openolt'
-      image = 'adapter_open_olt'
-    break
-    case 'bbsim':
-      // BBSIM has a different format that voltha, return directly
-      return '--set images.bbsim.tag=${tag},images.bbsim.pullPolicy=${pullPolicy},images.bbsim.registry='' '
-    break
-    case 'voltha-onos':
-      return '--set onos-classic.image.repository=voltha/voltha-onos,onos-classic.image.tag=citest,onos-classic.image.pullPolicy=${pullPolicy}'
-    default:
-      return ''
-    break
-  }
+    String chart = 'unknown'
+    String image = 'unknown'
+    switch (project) {
+        case 'ofagent-go':
+            chart = 'voltha'
+            image = 'ofagent'
+            break
+        case 'voltha-go':
+            chart = 'voltha'
+            image = 'rw_core'
+            break
+        case 'voltha-openonu-adapter-go':
+            chart = 'voltha-adapter-openonu'
+            image = 'adapter_open_onu_go'
+            break
+            // TODO end
+        case 'voltha-openolt-adapter':
+            chart = 'voltha-adapter-openolt'
+            image = 'adapter_open_olt'
+            break
+        case 'bbsim':
+            // BBSIM has a different format that voltha, return directly
+            String ans = [
+                "--set images.bbsim.tag=${tag}",
+                "images.bbsim.pullPolicy=${pullPolicy}",
+                "images.bbsim.registry=''",
+            ].join(',')
+            return(ans)
+            break
+        case 'voltha-onos':
+            String ans = [
+                '--set nos-classic.image.repository=voltha/voltha-onos',
+                'onos-classic.image.tag=citest',
+                "onos-classic.image.pullPolicy=${pullPolicy}",
+            ].join(',')
+            return (ans)
+            break
+        default:
+            return ''
+            break
+    }
 
-    String ans = "--set ${chart}.images.${image}.tag=${tag},${chart}.images.${image}.pullPolicy=${pullPolicy},${chart}.images.${image}.registry=''  "
+    String ans = [
+        "--set ${chart}.images.${image}.tag=${tag}",
+        "${chart}.images.${image}.pullPolicy=${pullPolicy}",
+        "${chart}.images.${image}.registry=''  "
+    ].join(',')
+
     println("getVolthaImageFlags return ${ans}")
     return(ans)
 }
