diff --git a/src/com/mirantis/mk/Aws.groovy b/src/com/mirantis/mk/Aws.groovy
index 669305d..2c9405a 100644
--- a/src/com/mirantis/mk/Aws.groovy
+++ b/src/com/mirantis/mk/Aws.groovy
@@ -135,7 +135,6 @@
  *
  */
 
-@NonCPS
 def describeAutoscalingGroup(venv_path, env_vars, group_name) {
     def python = new com.mirantis.mk.Python()
     def common = new com.mirantis.mk.Common()
@@ -168,7 +167,6 @@
     }
 }
 
-@NonCPS
 def waitForAutoscalingInstances(venv_path, env_vars, group_name, max_timeout = 600, loop_sleep = 20) {
     def aws = new com.mirantis.mk.Aws()
     def common = new com.mirantis.mk.Common()
@@ -182,7 +180,7 @@
                 def instances = out['AutoScalingGroups'][0]['Instances']
 
                 // check all instances are InService
-                if (instances.stream().filter{i -> !i['LifecycleState'].equals("InService")}.collect(java.util.stream.Collectors.counting()) == 0) {
+                if (common.countHashMapEquals(instances, 'LifecycleState', 'InService') == 0) {
                     break
                 }
 
@@ -199,7 +197,6 @@
  *
  */
 
-
 def registerIntanceWithLb(venv_path, env_vars, lb, instances = []) {
     def python = new com.mirantis.mk.Python()
 
@@ -221,7 +218,3 @@
         return out
     }
 }
-
-
-
-
diff --git a/src/com/mirantis/mk/Common.groovy b/src/com/mirantis/mk/Common.groovy
index a348e75..0597cfa 100644
--- a/src/com/mirantis/mk/Common.groovy
+++ b/src/com/mirantis/mk/Common.groovy
@@ -437,4 +437,17 @@
  */
 def validInputParam(paramName){
     return env.getEnvironment().containsKey(paramName) && env[paramName] != null && env[paramName] != ""
-}
\ No newline at end of file
+}
+
+/**
+ * Take list of hashmaps and count number of hashmaps with parameter equals eq
+ * @param lm list of hashmaps
+ * @param param define parameter of hashmap to read and compare
+ * @param eq desired value of hashmap parameter
+ * @return count of hashmaps meeting defined condition
+ */
+
+@NonCPS
+def countHashMapEquals(lm, param, eq) {
+    return lm.stream().filter{i -> !i[param].equals(eq)}.collect(java.util.stream.Collectors.counting())
+}
