diff --git a/src/com/mirantis/mk/Aws.groovy b/src/com/mirantis/mk/Aws.groovy
index 8b8bde7..967d62c 100644
--- a/src/com/mirantis/mk/Aws.groovy
+++ b/src/com/mirantis/mk/Aws.groovy
@@ -31,7 +31,7 @@
 
 /**
  *
- * CloudFormation stacks
+ * CloudFormation stacks (cloudformation)
  *
  */
 
@@ -131,7 +131,7 @@
 
 /**
  *
- * Autoscaling groups
+ * Autoscaling groups (autoscaling)
  *
  */
 
@@ -163,9 +163,39 @@
 
     withEnv(env_vars) {
         def out = python.runVirtualenvCommand(venv_path, cmd)
-
         return out
     }
 }
 
+/**
+ *
+ * Load balancers (elb)
+ *
+ */
+
+
+def registerIntanceWithLb(venv_path, env_vars, lb, instances = []) {
+    def python = new com.mirantis.mk.Python()
+
+    def cmd = "aws elb register-instances-with-load-balancer --load-balancer-name ${lb} --instances " + instances.join(' ')
+
+    withEnv(env_vars) {
+        def out = python.runVirtualenvCommand(venv_path, cmd)
+        return out
+    }
+}
+
+def deregisterIntanceWithLb(venv_path, env_vars, lb, instances = []) {
+    def python = new com.mirantis.mk.Python()
+
+    def cmd = "aws elb deregister-instances-with-load-balancer --load-balancer-name ${lb} --instances " + instances.join(' ')
+
+    withEnv(env_vars) {
+        def out = python.runVirtualenvCommand(venv_path, cmd)
+        return out
+    }
+}
+
+
+
 
