diff --git a/aws-ec2.cabal b/aws-ec2.cabal
--- a/aws-ec2.cabal
+++ b/aws-ec2.cabal
@@ -1,5 +1,5 @@
 name:                aws-ec2
-version:             0.1
+version:             0.2
 synopsis:            AWS EC2/VPC, ELB and CloudWatch client library for Haskell
 license-file:        LICENSE
 license:             BSD3
@@ -15,7 +15,7 @@
 source-repository this
   type: git
   location: https://github.com/zalora/aws-ec2.git
-  tag: 0.1
+  tag: 0.2
 
 source-repository head
   type: git
@@ -78,6 +78,10 @@
     , Aws.Elb.Commands.DescribeLoadBalancers
     , Aws.Elb.Commands.ModifyLoadBalancerAttributes
     , Aws.Elb.Commands.RegisterInstancesWithLoadBalancer
+    , Aws.Elb.Commands.DeregisterInstancesFromLoadBalancer
+    , Aws.Elb.Commands.CreateLBCookieStickinessPolicy
+    , Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener
+
   build-depends:
       base >=4 && <5
     , template-haskell
diff --git a/src/Aws/Elb.hs b/src/Aws/Elb.hs
--- a/src/Aws/Elb.hs
+++ b/src/Aws/Elb.hs
@@ -6,11 +6,16 @@
 
 , module Aws.Elb.Commands.DescribeLoadBalancers
 , module Aws.Elb.Commands.CreateLoadBalancer
-, module Aws.Elb.Commands.RegisterInstancesWithLoadBalancer
 , module Aws.Elb.Commands.DescribeLoadBalancerPolicyTypes
 , module Aws.Elb.Commands.DescribeInstanceHealth
 , module Aws.Elb.Commands.DescribeLoadBalancerPolicies
 , module Aws.Elb.Commands.ModifyLoadBalancerAttributes
+
+, module Aws.Elb.Commands.RegisterInstancesWithLoadBalancer
+, module Aws.Elb.Commands.DeregisterInstancesFromLoadBalancer
+
+, module Aws.Elb.Commands.CreateLBCookieStickinessPolicy
+, module Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener
 ) where
 
 import Aws.Core (Transaction)
@@ -20,8 +25,13 @@
 
 import Aws.Elb.Commands.DescribeLoadBalancers
 import Aws.Elb.Commands.CreateLoadBalancer
-import Aws.Elb.Commands.RegisterInstancesWithLoadBalancer
 import Aws.Elb.Commands.DescribeLoadBalancerPolicyTypes
 import Aws.Elb.Commands.DescribeInstanceHealth
 import Aws.Elb.Commands.DescribeLoadBalancerPolicies
 import Aws.Elb.Commands.ModifyLoadBalancerAttributes
+
+import Aws.Elb.Commands.RegisterInstancesWithLoadBalancer
+import Aws.Elb.Commands.DeregisterInstancesFromLoadBalancer
+
+import Aws.Elb.Commands.CreateLBCookieStickinessPolicy
+import Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener
diff --git a/src/Aws/Elb/Commands/CreateLBCookieStickinessPolicy.hs b/src/Aws/Elb/Commands/CreateLBCookieStickinessPolicy.hs
new file mode 100644
--- /dev/null
+++ b/src/Aws/Elb/Commands/CreateLBCookieStickinessPolicy.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE TypeFamilies
+           , MultiParamTypeClasses
+           , FlexibleInstances
+           , OverloadedStrings
+           , TemplateHaskell
+           , RecordWildCards
+           #-}
+
+module Aws.Elb.Commands.CreateLBCookieStickinessPolicy where
+
+import Aws.Elb.TH
+
+data CreateLBCookieStickinessPolicy = CreateLBCookieStickinessPolicy
+                        { clbcsp_loadBalancerName :: Text
+                        , clbcsp_cookieExpirationPeriod :: Maybe Integer
+                        , clbcsp_policyName :: Text
+                        } deriving (Show)
+
+instance SignQuery CreateLBCookieStickinessPolicy where
+    type ServiceConfiguration CreateLBCookieStickinessPolicy = QueryAPIConfiguration
+    signQuery CreateLBCookieStickinessPolicy{..} = elbSignQuery $
+                                                    [ ("Action", qArg "CreateLBCookieStickinessPolicy")
+                                                    , defVersion
+                                                    , ("LoadBalancerName", qArg clbcsp_loadBalancerName)
+                                                    , ("PolicyName", qArg clbcsp_policyName)
+                                                    ] +++ optional "CookieExpirationPeriod" clbcsp_cookieExpirationPeriod qShow
+
+elbValueTransaction ''CreateLBCookieStickinessPolicy "CreateLBCookieStickinessPolicyResult"
diff --git a/src/Aws/Elb/Commands/DeregisterInstancesFromLoadBalancer.hs b/src/Aws/Elb/Commands/DeregisterInstancesFromLoadBalancer.hs
new file mode 100644
--- /dev/null
+++ b/src/Aws/Elb/Commands/DeregisterInstancesFromLoadBalancer.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE TypeFamilies
+           , MultiParamTypeClasses
+           , FlexibleInstances
+           , OverloadedStrings
+           , TemplateHaskell
+           , RecordWildCards
+           #-}
+
+module Aws.Elb.Commands.DeregisterInstancesFromLoadBalancer where
+
+import qualified Network.HTTP.Types as HTTP
+import Aws.Elb.TH
+import Aws.Elb.Types
+
+data DeregisterInstancesFromLoadBalancer = DeregisterInstancesFromLoadBalancer
+                        { dilb_name :: Text
+                        , dilb_instanceIds :: [Text]
+                        } deriving (Show)
+
+instance SignQuery DeregisterInstancesFromLoadBalancer where
+    type ServiceConfiguration DeregisterInstancesFromLoadBalancer = QueryAPIConfiguration
+    signQuery DeregisterInstancesFromLoadBalancer{..} = elbSignQuery $
+                                                    [ ("Action", qArg "DeregisterInstancesFromLoadBalancer")
+                                                    , defVersion
+                                                    , ("LoadBalancerName", qArg dilb_name)
+                                                    ] +++ enumerateInstanceIds dilb_instanceIds
+
+elbValueTransaction ''DeregisterInstancesFromLoadBalancer "DeregisterInstancesFromLoadBalancerResult"
diff --git a/src/Aws/Elb/Commands/RegisterInstancesWithLoadBalancer.hs b/src/Aws/Elb/Commands/RegisterInstancesWithLoadBalancer.hs
--- a/src/Aws/Elb/Commands/RegisterInstancesWithLoadBalancer.hs
+++ b/src/Aws/Elb/Commands/RegisterInstancesWithLoadBalancer.hs
@@ -10,16 +10,12 @@
 
 import qualified Network.HTTP.Types as HTTP
 import Aws.Elb.TH
+import Aws.Elb.Types
 
 data RegisterInstancesWithLoadBalancer = RegisterInstancesWithLoadBalancer
                         { rilb_name :: Text
                         , rilb_instanceIds :: [Text]
                         } deriving (Show)
-
-enumerateInstanceIds :: [Text] -> HTTP.Query
-enumerateInstanceIds = enumerateLists "Instances.member." . fmap unroll
-  where
-    unroll i = [("InstanceId", qArg i)]
 
 instance SignQuery RegisterInstancesWithLoadBalancer where
     type ServiceConfiguration RegisterInstancesWithLoadBalancer = QueryAPIConfiguration
diff --git a/src/Aws/Elb/Commands/SetLoadBalancerPoliciesOfListener.hs b/src/Aws/Elb/Commands/SetLoadBalancerPoliciesOfListener.hs
new file mode 100644
--- /dev/null
+++ b/src/Aws/Elb/Commands/SetLoadBalancerPoliciesOfListener.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE TypeFamilies
+           , MultiParamTypeClasses
+           , FlexibleInstances
+           , OverloadedStrings
+           , TemplateHaskell
+           , RecordWildCards
+           #-}
+
+module Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener where
+
+import Aws.Elb.TH
+
+data SetLoadBalancerPoliciesOfListener = SetLoadBalancerPoliciesOfListener
+                        { spl_loadBalancerName :: Text
+                        , spl_loadBalancerPort :: Integer
+                        , spl_policyNames :: [Text]
+                        } deriving (Show)
+
+instance SignQuery SetLoadBalancerPoliciesOfListener where
+    type ServiceConfiguration SetLoadBalancerPoliciesOfListener = QueryAPIConfiguration
+    signQuery SetLoadBalancerPoliciesOfListener{..} = elbSignQuery $
+                                                    [ ("Action", qArg "SetLoadBalancerPoliciesOfListener")
+                                                    , defVersion
+                                                    , ("LoadBalancerName", qArg spl_loadBalancerName)
+                                                    , ("LoadBalancerPort", qShow spl_loadBalancerPort)
+                                                    ] +++ enumerate "PolicyNames.member" spl_policyNames qArg
+
+elbValueTransaction ''SetLoadBalancerPoliciesOfListener "SetLoadBalancerPoliciesOfListenerResult"
diff --git a/src/Aws/Elb/Types.hs b/src/Aws/Elb/Types.hs
--- a/src/Aws/Elb/Types.hs
+++ b/src/Aws/Elb/Types.hs
@@ -15,3 +15,9 @@
 
 import Aws.Query
 import Aws.Elb.Core
+
+enumerateInstanceIds :: [Text] -> HTTP.Query
+enumerateInstanceIds = enumerateLists "Instances.member." . fmap unroll
+  where
+    unroll i = [("InstanceId", qArg i)]
+
