diff --git a/bosh_aws_cpi/lib/cloud/aws/cloud.rb b/bosh_aws_cpi/lib/cloud/aws/cloud.rb
index 6e2bfab..6a66b0a 100644
--- a/bosh_aws_cpi/lib/cloud/aws/cloud.rb
+++ b/bosh_aws_cpi/lib/cloud/aws/cloud.rb
@@ -56,7 +56,9 @@ module Bosh::AwsCloud
       # AWS Ruby SDK is threadsafe but Ruby autoload isn't,
       # so we need to trigger eager autoload while constructing CPI
       AWS.eager_autoload!
-      @ec2 = AWS::EC2.new(aws_params)
+
+      AWS.params(aws_params)
+      @ec2 = AWS::EC2.new
 
       # Registry updates are not really atomic in relation to
       # EC2 API calls, so they might get out of sync. Cloudcheck
diff --git a/bosh_aws_cpi/lib/cloud/aws/instance_manager.rb b/bosh_aws_cpi/lib/cloud/aws/instance_manager.rb
index badbaf1..fbc83bb 100644
--- a/bosh_aws_cpi/lib/cloud/aws/instance_manager.rb
+++ b/bosh_aws_cpi/lib/cloud/aws/instance_manager.rb
@@ -2,6 +2,7 @@ module Bosh::AwsCloud
   class InstanceManager
     include Helpers
 
+    attr_reader :instance
     attr_reader :instance_params
 
     def initialize(region, registry, az_selector=nil)
@@ -26,11 +27,18 @@ module Bosh::AwsCloud
       )
 
       @logger.info("Creating new instance with: #{instance_params.inspect}")
-      @region.instances.create instance_params
+      @instance = @region.instances.create(instance_params)
+
+      elbs = resource_pool['elbs']
+      attach_to_load_balancers(elbs) if elbs
+
+      instance
     end
 
     def terminate(instance_id, fast=false)
-      instance = @region.instances[instance_id]
+      @instance = @region.instances[instance_id]
+
+      remove_from_load_balancers
 
       instance.terminate
 
@@ -52,6 +60,25 @@ module Bosh::AwsCloud
       end
     end
 
+    def attach_to_load_balancers(elbs)
+      elb = AWS::ELB.new
+
+      elbs.each do |load_balancer|
+        elb.register_instances_with_load_balancer(:load_balancer_name => load_balancer,
+                                                  :instances => [instance.id])
+      end
+    end
+
+    def remove_from_load_balancers
+      elb = AWS::ELB.new
+
+      # should we only do this for the elbs explicitly listed in the resource_pool?
+      elb.load_balancers.each do |load_balancer|
+        i = load_balancer.instances[instance.id]
+        i.remove_from_load_balancer if i.exist?
+      end
+    end
+
     # Soft reboots EC2 instance
     # @param [AWS::EC2::Instance] instance EC2 instance
     def reboot(instance_id)
diff --git a/bosh_aws_cpi/lib/cloud/aws/manual_network.rb b/bosh_aws_cpi/lib/cloud/aws/manual_network.rb
index 166c880..3cb070e 100644
--- a/bosh_aws_cpi/lib/cloud/aws/manual_network.rb
+++ b/bosh_aws_cpi/lib/cloud/aws/manual_network.rb
@@ -14,6 +14,7 @@ module Bosh::AwsCloud
         raise Bosh::Clouds::CloudError, "subnet required for manual network"
       end
       @subnet = @cloud_properties["subnet"]
+      @elb = @cloud_properties["elb"]
     end
 
     def private_ip
diff --git a/bosh_aws_cpi/lib/cloud/aws/network_configurator.rb b/bosh_aws_cpi/lib/cloud/aws/network_configurator.rb
index 730c92c..0663c75 100644
--- a/bosh_aws_cpi/lib/cloud/aws/network_configurator.rb
+++ b/bosh_aws_cpi/lib/cloud/aws/network_configurator.rb
@@ -1,4 +1,4 @@
-76# Copyright (c) 2009-2012 VMware, Inc.
+# Copyright (c) 2009-2012 VMware, Inc.
 
 module Bosh::AwsCloud
   ##