diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -26,17 +26,16 @@
   * Give you the full flexibility of the C/ATS ecosystem
   * Integrate with other ecosystems
   * Provide a centralized package repository
-  * Library builds (this is planned)
   * Offer a common architecture for package builds
   * Cache builds locally (like `nix` or `cabal`)
 
 ### Example
 
-As an example, the following two lines will install `getkb`:
+As an example, the following two lines will install `polyglot`:
 
 ```bash
 curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | bash -s
-atspkg remote https://github.com/vmchale/getkb/archive/master.zip
+atspkg remote https://github.com/vmchale/polyglot/archive/master.zip
 ```
 
 As you can see, this greatly simplifies distribution and testing of programs
@@ -84,6 +83,9 @@
 
 in cfg
 ```
+
+Package sets are simply sets of packages, so you can also use Dhall to
+concatenate custom package sets with the above.
 
 ## Examples
 
diff --git a/ats-pkg.cabal b/ats-pkg.cabal
--- a/ats-pkg.cabal
+++ b/ats-pkg.cabal
@@ -1,5 +1,5 @@
 name:                ats-pkg
-version:             2.4.0.0
+version:             2.4.0.3
 synopsis:            A build tool for ATS
 description:         A collection of scripts to simplify building ATS projects.
 homepage:            https://github.com/vmchale/atspkg#readme
@@ -39,7 +39,6 @@
                      , Language.ATS.Package.Compiler
                      , Language.ATS.Package.Build
                      , Language.ATS.Package.Upgrade
-                     , Language.ATS.Package.Tools
                      , Language.ATS.Package.Config
                      , Language.ATS.Package.PackageSet
   build-depends:       base >= 4.7 && < 5
diff --git a/config.dhall b/config.dhall
--- a/config.dhall
+++ b/config.dhall
@@ -1,5 +1,6 @@
 let cfg = 
   { defaultPkgs = "https://raw.githubusercontent.com/vmchale/atspkg/master/pkgs/pkg-set.dhall"
+  , path = ([] : Optional Text)
   }
 
 in cfg
diff --git a/src/Language/ATS/Package.hs b/src/Language/ATS/Package.hs
--- a/src/Language/ATS/Package.hs
+++ b/src/Language/ATS/Package.hs
@@ -8,7 +8,6 @@
                             , cleanAll
                             , upgradeAtsPkg
                             , fetchDeps
-                            , getCCompiler
                             , mkBuildPlan
                             , buildHelper
                             -- * Types
@@ -27,6 +26,5 @@
 import           Language.ATS.Package.Compiler
 import           Language.ATS.Package.Dependency
 import           Language.ATS.Package.PackageSet
-import           Language.ATS.Package.Tools
 import           Language.ATS.Package.Type
 import           Language.ATS.Package.Upgrade
diff --git a/src/Language/ATS/Package/Build.hs b/src/Language/ATS/Package/Build.hs
--- a/src/Language/ATS/Package/Build.hs
+++ b/src/Language/ATS/Package/Build.hs
@@ -219,9 +219,9 @@
 
         mapM_ g (bs ++ ts)
 
-    where g (Bin s t ls hs' atg gc' cSrc) =
+    where g (Bin s t ls hs' atg gc' cSrc extra) =
             atsBin
-                (BinaryTarget (TL.unpack <$> cf) (ATSToolConfig v v' False (ccFromString cc')) gc' (TL.unpack <$> ls) (TL.unpack s) hs' (unpackBoth . asTuple <$> atg) (TL.unpack t) (TL.unpack <$> cSrc) [".atspkg/deps", ".atspkg/config"] (Binary False))
+                (BinaryTarget (TL.unpack <$> cf) (ATSToolConfig v v' False (ccFromString cc')) gc' (TL.unpack <$> ls) [TL.unpack s] hs' (unpackBoth . asTuple <$> atg) (TL.unpack t) (TL.unpack <$> cSrc) (deps extra) Executable)
 
           cDepsRules = unless (null as) $ do
             let cedar = TL.unpack cdir
@@ -232,6 +232,7 @@
             mapM_ (cgen $ ATSToolConfig v v' hasPF (ccFromString cc')) atsSourceDirs
 
           cc' = maybe (TL.unpack ccLocal) (<> "-gcc") tgt
+          deps = (".atspkg/deps":) . (".atspkg/config":) . fmap TL.unpack
 
           unpackBoth :: (Text, Text, Bool) -> (String, String, Bool)
           unpackBoth = over _1 TL.unpack . over _2 TL.unpack
diff --git a/src/Language/ATS/Package/Config.hs b/src/Language/ATS/Package/Config.hs
--- a/src/Language/ATS/Package/Config.hs
+++ b/src/Language/ATS/Package/Config.hs
@@ -18,8 +18,9 @@
 import           System.Directory       (createDirectoryIfMissing)
 import           System.Environment     (getEnv)
 
-newtype UserConfig = UserConfig { defaultPkgs :: Text
-                                } deriving (Generic, Interpret, Binary)
+data UserConfig = UserConfig { defaultPkgs :: Text
+                             , path        :: Maybe Text
+                             } deriving (Generic, Interpret, Binary)
 
 cfgFile :: String
 cfgFile = $(embedStringFile "config.dhall")
diff --git a/src/Language/ATS/Package/Tools.hs b/src/Language/ATS/Package/Tools.hs
deleted file mode 100644
--- a/src/Language/ATS/Package/Tools.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Language.ATS.Package.Tools ( getCCompiler
-                                  ) where
-
-import           Data.List
-import           Development.Shake.ATS
-
-getCCompiler :: String -> CCompiler
-getCCompiler "gcc"   = GCC Nothing Nothing
-getCCompiler "clang" = Clang
-getCCompiler x
-    | "gcc" `isPrefixOf` x = GCC (Just $ drop 3 x) Nothing
-    | "gcc" `isSuffixOf` x = GCC Nothing (Just . reverse . drop 3 . reverse $ x)
-    | otherwise = Other x
diff --git a/src/Language/ATS/Package/Type.hs b/src/Language/ATS/Package/Type.hs
--- a/src/Language/ATS/Package/Type.hs
+++ b/src/Language/ATS/Package/Type.hs
@@ -62,6 +62,7 @@
                , hs2ats   :: [TargetPair] -- ^ List of sources and targets for @hs2ats@
                , gcBin    :: Bool -- ^ Whether to use the garbage collector
                , cSources :: [Text] -- ^ C source files the build depends on
+               , extras   :: [Text] -- ^ Extra source files the build depends on
                }
          deriving (Show, Eq, Generic, Interpret, Binary)
 
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -6,9 +6,9 @@
   - 'shake-ats'
   - 'hs2ats'
 extra-deps:
-  - shake-ext-2.3.0.0
+  - shake-ext-2.4.0.0
   - composition-prelude-1.1.0.2
-  - language-ats-0.3.0.0
+  - language-ats-0.3.0.1
   - cli-setup-0.2.0.1
   - ats-setup-0.3.0.2
   - hspec-dirstream-0.3.0.0
