diff --git a/src/com/mirantis/mk/Common.groovy b/src/com/mirantis/mk/Common.groovy
index 4281641..ebc80c1 100644
--- a/src/com/mirantis/mk/Common.groovy
+++ b/src/com/mirantis/mk/Common.groovy
@@ -459,15 +459,3 @@
 def countHashMapEquals(lm, param, eq) {
     return lm.stream().filter{i -> i[param].equals(eq)}.collect(java.util.stream.Collectors.counting())
 }
-
-/**
- * Removes SUITE parameter from Kitchen envs and removes duplicates
- * @param input list of kitchenEnvs
- * @return filtered list
- */
-
-def filterKitchenEnvs(input = []) {
-    def variablesList = input.split().flatten().sort()
-    variablesList.removeAll { it.toUpperCase().contains('SUITE') }
-    return variablesList.join(' ')
-}
\ No newline at end of file
diff --git a/src/com/mirantis/mk/Ruby.groovy b/src/com/mirantis/mk/Ruby.groovy
index cd68371..3988e90 100644
--- a/src/com/mirantis/mk/Ruby.groovy
+++ b/src/com/mirantis/mk/Ruby.groovy
@@ -79,4 +79,21 @@
     }else{
         return sh(script: "rbenv exec bundler exec kitchen ${cmd}", returnStdout: true)
     }
+}
+
+/**
+ * Filters given kitchen env lists for forbidden env properties
+ * @param input list of kitchenEnvs
+ * @param cleanRegex regex will be used for env cleaning (default removing SUITE=* properties)
+ * @return filtered env list
+ */
+def filterKitchenEnvs(inputEnvs = [], cleanRegex = "\\s?SUITE\\=[^\\s]*") {
+    def output = []
+    for(int i=0; i<inputEnvs.size(); i++) {
+        def cleanEnv = inputEnvs[i].replaceAll(cleanRegex, "")
+        if(cleanEnv != "") {
+            output.add(cleanEnv.trim())
+        }
+     }
+    return output
 }
\ No newline at end of file
