diff --git a/Source/Library/Network/AWS/Machines.hs b/Source/Library/Network/AWS/Machines.hs
deleted file mode 100644
--- a/Source/Library/Network/AWS/Machines.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-|
-Module:             Network.AWS.Machines
-Description:        Machines transducers for Amazonka functions.
-Copyright:          © 2017 All rights reserved.
-License:            GPL-3
-Maintainer:         Evan Cofsky <evan@theunixman.com>
-Stability:          experimental
-Portability:        POSIX
--}
-
-module Network.AWS.Machines (
-    module Network.AWS.Machines.AWS,
-    module Network.AWS.Machines.Filters,
-    module Network.AWS.Machines.Images,
-    module Network.AWS.Machines.Instances,
-    module Network.AWS.Machines.Subnets,
-    module Network.AWS.Machines.SpotPrices
-    ) where
-
-import Network.AWS.Machines.AWS
-import Network.AWS.Machines.Filters
-import Network.AWS.Machines.Images
-import Network.AWS.Machines.Instances
-import Network.AWS.Machines.SpotPrices
-import Network.AWS.Machines.Subnets
diff --git a/Source/Library/Network/AWS/Machines/AWS.hs b/Source/Library/Network/AWS/Machines/AWS.hs
--- a/Source/Library/Network/AWS/Machines/AWS.hs
+++ b/Source/Library/Network/AWS/Machines/AWS.hs
@@ -9,8 +9,6 @@
 -}
 
 module Network.AWS.Machines.AWS (
-    module Machine,
-    module Lawless,
     AWSProcessT,
     AWSSourceT,
     RequestMod,
@@ -46,36 +44,12 @@
     (<~),
     (<>)
     )
-import Network.AWS hiding (send, within)
-import Control.Monad.Trans.AWS
-import Control.Monad.IO.Class
-import Control.Monad.Trans.Control
-import Control.Monad.Catch
+import IO
 import Text
-import Control.Monad.Trans.Resource
 import Machine
+import Network.AWS.Machines.Types
 
 default (Text)
-
--- | The base monad constraints for an 'AWSMachineT'.
-type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m)))
-
--- | Any 'MachineT' operating in the AWST' stack.
-type AWSMachineT m k b = M m ⇒ MachineT (AWST' Env (ResourceT m)) k b
-
--- | A process transducing a stream of AWS values.
-type AWSProcessT m a b = AWSMachineT m (Is a) b
-
--- | A stream of AWS values.
-type AWSSourceT m b = ∀ k. AWSMachineT m k b
-
--- | A 'Getter' for extracting values from an 'Rs' 'AWSRequest'.
-type GetResponse f a c =
-    (AWSRequest a, Foldable f) ⇒ Getting (f c) (Rs a) (f c)
-
--- | Modifies an 'AWSRequest' after the smart constructor has created
--- it.
-type RequestMod a = a → a
 
 -- | Run an AWSProcessT.
 withAWS ∷ (MonadCatch m, MonadIO m, M m) ⇒
diff --git a/Source/Library/Network/AWS/Machines/AutoScaleGroup.hs b/Source/Library/Network/AWS/Machines/AutoScaleGroup.hs
new file mode 100644
--- /dev/null
+++ b/Source/Library/Network/AWS/Machines/AutoScaleGroup.hs
@@ -0,0 +1,29 @@
+{-|
+Module:             Network.AWS.Machines.LaunchConfigurations
+Description:        Pull launch configuration information from AWS.
+Copyright:          © 2017 All rights reserved.
+License:            GPL-3
+Maintainer:         Evan Cofsky <evan@theunixman.com>
+Stability:          experimental
+Portability:        POSIX
+-}
+
+module Network.AWS.Machines.AutoScaleGroup (
+    autoScalingGroups,
+    AutoScalingGroup) where
+
+import Network.AWS.Machines.AWS
+import Network.AWS.AutoScaling
+
+autoScalingGroups ∷
+    [RequestMod DescribeAutoScalingGroups] → AWSSourceT m AutoScalingGroup
+autoScalingGroups ms = pagedSource dasgrsAutoScalingGroups ms describeAutoScalingGroups
+
+-- -- | Create or update tags on a batch of 'AutoScaleGroup's,
+-- -- yielding the launch configurations.
+-- createOrUpdateTags ∷
+--     [Tag] → AWSProcessT m AutoScalingGroup LaunchConfiguration
+-- createOrUpdateTags tags = repeatedly $ do
+--     lc ← await
+--     let tgs = over traversed (\t → t & tagResourceId .~ lc ^. )
+--     await ≫= coutTags (over traversed (flip set ))
diff --git a/Source/Library/Network/AWS/Machines/Images.hs b/Source/Library/Network/AWS/Machines/Images.hs
--- a/Source/Library/Network/AWS/Machines/Images.hs
+++ b/Source/Library/Network/AWS/Machines/Images.hs
@@ -12,6 +12,7 @@
 
 module Network.AWS.Machines.Images where
 
+import Lawless hiding (mapping)
 import Network.AWS.EC2
 import Network.AWS.Machines.Filters
 import Network.AWS.Machines.AWS
@@ -20,6 +21,7 @@
 import Textual hiding (toText)
 import Data.Time.Format
 import Text
+import Machine
 
 images ∷ [RequestMod DescribeImages] → AWSSourceT m Image
 images ms = awsSource desrsImages ms describeImages
diff --git a/Source/Library/Network/AWS/Machines/Instances.hs b/Source/Library/Network/AWS/Machines/Instances.hs
--- a/Source/Library/Network/AWS/Machines/Instances.hs
+++ b/Source/Library/Network/AWS/Machines/Instances.hs
@@ -10,18 +10,20 @@
 
 module Network.AWS.Machines.Instances where
 
-import Network.AWS
+import Lawless hiding (mapping)
+import Machine
 import Network.AWS.Machines.AWS
+import Network.AWS.Machines.Types hiding (Instance)
 import Network.AWS.EC2
 
 reservations ∷ [RequestMod DescribeInstances] → AWSSourceT m Reservation
 reservations ms = pagedSource dirsReservations ms describeInstances
 
 instances ∷  AWSProcessT m Reservation Instance
-instances = mapping (view rInstances) ~> asParts
+instances = mapping (view rInstances) ⇝ asParts
 
-stopT ∷ AWSProcessT m Instance InstanceStateChange
-stopT = buffered 50 ~> autoM stop' ~> asParts
+stopT ∷ (MonadThrow m, M m, MonadIO m) ⇒ AWSProcessT m Instance InstanceStateChange
+stopT = buffered 50 ~> autoM stop' ⇝ asParts
     where
         srq iids = stopInstances
                    & siInstanceIds
diff --git a/Source/Library/Network/AWS/Machines/LaunchConfigurations.hs b/Source/Library/Network/AWS/Machines/LaunchConfigurations.hs
new file mode 100644
--- /dev/null
+++ b/Source/Library/Network/AWS/Machines/LaunchConfigurations.hs
@@ -0,0 +1,45 @@
+{-|
+Module:             Network.AWS.Machines.LaunchConfigurations
+Description:        Pull launch configuration information from AWS.
+Copyright:          © 2017 All rights reserved.
+License:            GPL-3
+Maintainer:         Evan Cofsky <evan@theunixman.com>
+Stability:          experimental
+Portability:        POSIX
+-}
+
+module Network.AWS.Machines.LaunchConfigurations (
+    module Network.AWS.AutoScaling.CreateLaunchConfiguration,
+    module Network.AWS.AutoScaling.DescribeLaunchConfigurations,
+    launchConfigurations
+    ) where
+
+import Network.AWS.Machines.AWS
+import Network.AWS.Machines.Types hiding (await)
+import Network.AWS.AutoScaling.CreateLaunchConfiguration
+import Network.AWS.AutoScaling.DescribeLaunchConfigurations
+
+launchConfigurations ∷
+    [RequestMod DescribeLaunchConfigurations] → AWSSourceT m LaunchConfiguration
+launchConfigurations ms =
+    pagedSource dlcrsLaunchConfigurations ms describeLaunchConfigurations
+
+-- -- | Create a new launch configuration for each
+-- -- 'CreateLaunchConfiguration' that comes through. Return the actual
+-- -- created 'LaunchConfiguration' by searching for the name.
+-- createLaunchConfiguration ∷
+--     [CreateLaunchConfiguration] →
+--     AWSProcessT m CreateLaunchConfiguration LaunchConfiguration
+-- createLaunchConfiguration =
+--     let
+--         c = repeatedly $ do
+--             rq ← await
+--             send  rq
+--             yield $ rq ^. lcLaunchConfigurationName
+--         bc = buffered 100
+--         lcs = repeatedly $
+--             await
+--             ≫= launchConfigurations ∘ over traversed (flip set dlcLaunchConfigurationNames)
+--             ≫= yield
+--     in
+--         c ⇝ bc ⇝ asParts ⇝ lcs
diff --git a/Source/Library/Network/AWS/Machines/SecurityGroups.hs b/Source/Library/Network/AWS/Machines/SecurityGroups.hs
new file mode 100644
--- /dev/null
+++ b/Source/Library/Network/AWS/Machines/SecurityGroups.hs
@@ -0,0 +1,17 @@
+{-|
+Module:             Network.AWS.Machines.
+Description:        Machines producing instances
+Copyright:          © 2017 All rights reserved.
+License:            GPL-3
+Maintainer:         Evan Cofsky <evan@theunixman.com>
+Stability:          experimental
+Portability:        POSIX
+-}
+
+module Network.AWS.Machines.SecurityGroups where
+
+import Network.AWS.Machines.AWS
+import Network.AWS.EC2
+
+securityGroups ∷ [RequestMod DescribeSecurityGroups] → AWSSourceT m SecurityGroup
+securityGroups ms = awsSource dsgrsSecurityGroups ms describeSecurityGroups
diff --git a/Source/Library/Network/AWS/Machines/SpotPrices.hs b/Source/Library/Network/AWS/Machines/SpotPrices.hs
--- a/Source/Library/Network/AWS/Machines/SpotPrices.hs
+++ b/Source/Library/Network/AWS/Machines/SpotPrices.hs
@@ -15,12 +15,14 @@
 import Lawless hiding (filtered, mapping)
 import Network.AWS.EC2
 import Network.AWS.Machines.AWS
+import Network.AWS.Machines.Types
 import Network.AWS.Data.Text (toText)
 
 import Time
 import Data.Fixed
 import Textual (Textual(..), Printable(..), fromText, hcat, fsep)
 import Text
+import Machine
 
 -- | An 'AWSSourceT' for 'SpotPrice's.
 type SpotPriceSourceT m = AWSSourceT m SpotPrice
diff --git a/Source/Library/Network/AWS/Machines/Types.hs b/Source/Library/Network/AWS/Machines/Types.hs
new file mode 100644
--- /dev/null
+++ b/Source/Library/Network/AWS/Machines/Types.hs
@@ -0,0 +1,58 @@
+{-|
+Module:             Network.AWS.Machines.AWS.Types
+Description:        Type reexports from Network.AWS.
+Copyright:          © 2017 All rights reserved.
+License:            GPL-3
+Maintainer:         Evan Cofsky <evan@theunixman.com>
+Stability:          experimental
+Portability:        POSIX
+-}
+
+module Network.AWS.Machines.Types (
+    module Network.AWS,
+    module Control.Monad.Trans.AWS,
+    module Control.Monad.IO.Class,
+    module Control.Monad.Trans.Control,
+    module Control.Monad.Catch,
+    module Control.Monad.Trans.Resource,
+    module Network.AWS.Types,
+    module Network.AWS.AutoScaling.Types,
+    M,
+    AWSMachineT,
+    AWSProcessT,
+    AWSSourceT,
+    GetResponse,
+    RequestMod,
+    IO
+    ) where
+
+import Lawless
+import Network.AWS (MonadAWS, liftAWS, )
+import Control.Monad.Trans.AWS
+import Control.Monad.IO.Class
+import Control.Monad.Trans.Control
+import Control.Monad.Catch
+import Control.Monad.Trans.Resource
+import Network.AWS.Types
+import Network.AWS.AutoScaling.Types
+import Machine
+
+-- | The base monad constraints for an 'AWSMachineT'.
+type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m)))
+
+-- | Any 'MachineT' operating in the AWST' stack.
+type AWSMachineT m k b = M m ⇒ MachineT (AWST' Env (ResourceT m)) k b
+
+-- | A process transducing a stream of AWS values.
+type AWSProcessT m a b = AWSMachineT m (Is a) b
+
+-- | A stream of AWS values.
+type AWSSourceT m b = ∀ k. AWSMachineT m k b
+
+-- | A 'Getter' for extracting values from an 'Rs' 'AWSRequest'.
+type GetResponse f a c =
+    (AWSRequest a, Foldable f) ⇒ Getting (f c) (Rs a) (f c)
+
+-- | Modifies an 'AWSRequest' after the smart constructor has created
+-- it.
+type RequestMod a = a → a
diff --git a/machines-amazonka.cabal b/machines-amazonka.cabal
--- a/machines-amazonka.cabal
+++ b/machines-amazonka.cabal
@@ -1,5 +1,5 @@
 name:                machines-amazonka
-version:             0.6.2
+version:             0.7.0
 synopsis:            Machine transducers for Amazonka calls.
 description:         This provides several modules for managing AWS
                      resources using the Machines library. It supports
@@ -25,20 +25,23 @@
 source-repository this
                   type: git
                   location: git@gitlab.com:theunixman/machines-amazonka.git
-                  tag: v0.6.2
+                  tag: v0.7.0
 
 library
   ghc-options:
               -Wall
               -O2
   exposed-modules:
-                  Network.AWS.Machines
-                  Network.AWS.Machines.AWS
-                  Network.AWS.Machines.Filters
-                  Network.AWS.Machines.Images
-                  Network.AWS.Machines.Instances
-                  Network.AWS.Machines.SpotPrices
-                  Network.AWS.Machines.Subnets
+        Network.AWS.Machines.AWS
+        Network.AWS.Machines.AutoScaleGroup
+        Network.AWS.Machines.Filters
+        Network.AWS.Machines.Images
+        Network.AWS.Machines.Instances
+        Network.AWS.Machines.LaunchConfigurations
+        Network.AWS.Machines.SecurityGroups
+        Network.AWS.Machines.SpotPrices
+        Network.AWS.Machines.Subnets
+        Network.AWS.Machines.Types
   default-extensions:  NoImplicitPrelude
                        UnicodeSyntax
                        LambdaCase
@@ -64,6 +67,7 @@
   build-depends:
                 amazonka >= 1.4.5 && < 1.5,
                 amazonka-core >= 1.4.5 && < 1.5,
+                amazonka-autoscaling >= 1.4.5 && < 1.5,
                 amazonka-ec2 >= 1.4.5 && < 1.5,
                 amazonka-s3 >= 1.4.5 && < 1.5,
                 amazonka-sts >= 1.4.5 && < 1.5,
