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:             1.1.0.0
+version:             1.1.0.1
 synopsis:            Package manager for ATS
 description:         A collection of scripts to make building ATS projects easy.
 homepage:            https://github.com/vmchale/ats-pkg#readme
@@ -26,7 +26,6 @@
   hs-source-dirs:      src
   exposed-modules:     Language.ATS.Package
                      , Language.ATS.Package.Exec
-                     , Language.ATS.Package.Contents
                      , Language.ATS.Package.Type
                      , Language.ATS.Package.Dependency
   build-depends:       base >= 4.7 && < 5
@@ -42,6 +41,7 @@
                      , process
                      , parallel-io
                      , unix
+                     , lens
                      , dhall
                      , shake-ext >= 1.1.0.0
                      , composition-prelude >= 1.1.0.1
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
@@ -44,9 +44,7 @@
     BS.writeFile (directory ++ ".tar.gz") (compress bytes)
 
 pkgUrl :: Version -> String
-pkgUrl v = "https://github.com/vmchale/fastcat/releases/download/0.1.5/ATS2-Postiats-" ++ show v ++ ".tar.gz"
-
--- "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-" ++ show v ++ "/ATS2-Postiats-" ++ show v ++ ".tgz"
+pkgUrl v = "https://github.com/vmchale/atspkg/raw/master/pkgs/ATS2-Postiats-" ++ show v ++ ".tar.gz"
 
 fetchCompiler :: Version -> IO ()
 fetchCompiler v = do
@@ -67,7 +65,7 @@
 setupCompiler :: Version -> IO ()
 setupCompiler v = do
 
-    putStrLn "configuring compiler..."
+    putStrLn "Configuring compiler..."
     cd <- compilerDir v
     let configurePath = cd ++ "/configure"
     setFileMode configurePath ownerModes
@@ -75,6 +73,7 @@
     void $ readCreateProcess ((proc (cd ++ "/autogen.sh") []) { cwd = Just cd }) ""
     void $ readCreateProcess ((proc configurePath ["--prefix", cd]) { cwd = Just cd }) ""
 
-    putStrLn "building compiler..."
+    putStrLn "Building compiler..."
     void $ readCreateProcess ((proc "make" []) { cwd = Just cd, std_err = CreatePipe }) ""
+    putStrLn "Installing compiler..."
     void $ readCreateProcess ((proc "make" ["install"]) { cwd = Just cd, std_err = CreatePipe }) ""
diff --git a/src/Language/ATS/Package/Contents.hs b/src/Language/ATS/Package/Contents.hs
deleted file mode 100644
--- a/src/Language/ATS/Package/Contents.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Language.ATS.Package.Contents ( parsePackageContents
-                                     , PackageContents (..)
-                                     ) where
-
-data PackageContents = PackageContents { _srcDirs    :: [FilePath]
-                                       , _files      :: [FilePath]
-                                       , _binTargets :: [(FilePath, FilePath)]
-                                       , _libTargets :: [(FilePath, FilePath)] -- for foreign libraries (builds a c dependency)
-                                       } deriving (Show, Eq)
-
-parsePackageContents :: IO PackageContents
-parsePackageContents = pure $ PackageContents mempty mempty mempty mempty
diff --git a/src/Language/ATS/Package/Dependency.hs b/src/Language/ATS/Package/Dependency.hs
--- a/src/Language/ATS/Package/Dependency.hs
+++ b/src/Language/ATS/Package/Dependency.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DeriveAnyClass    #-}
 {-# LANGUAGE DeriveGeneric     #-}
 {-# LANGUAGE OverloadedStrings #-}
 
@@ -5,36 +6,27 @@
                                          fetchDeps
                                        -- * Types
                                        , Dependency (..)
-                                       -- * Dependency constants
-                                       , atsPrelude
-                                       , atsIntinf
-                                       , atsGMP
                                        ) where
 
 import qualified Codec.Archive.Tar                    as Tar
 import           Codec.Compression.GZip               (decompress)
 import           Control.Concurrent.ParallelIO.Global
+import           Control.Lens
 import           Control.Monad
+import qualified Data.Text.Lazy                       as TL
 import           Dhall
 import           Network.HTTP.Client                  hiding (decompress)
 import           Network.HTTP.Client.TLS              (tlsManagerSettings)
 import           System.Directory
 
 -- | Type for a dependency
-data Dependency = Dependency { _libName :: String -- ^ Library name, e.g.
-                             , _dir     :: FilePath -- ^ Directory we should unpack to
-                             , _url     :: String -- ^ Url pointing to tarball
+data Dependency = Dependency { libName :: Text -- ^ Library name, e.g.
+                             , dir     :: Text -- ^ Directory we should unpack to
+                             , url     :: Text -- ^ Url pointing to tarball
                              }
-    deriving (Eq, Show, Generic)
-
-atsPrelude :: Dependency
-atsPrelude = Dependency "ats2-postiats-0.3.8-prelude" ".atspkg/prelude" "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz"
-
-atsIntinf :: Dependency
-atsIntinf = Dependency "atscntrb-hs-intinf-1.0.6" ".atspkg/contrib/atscntrb-hx-intinf" "https://registry.npmjs.org/atscntrb-hx-intinf/-/atscntrb-hx-intinf-1.0.6.tgz"
+    deriving (Eq, Show, Generic, Interpret)
 
-atsGMP :: Dependency
-atsGMP = Dependency "atscntrb-libgmp-1.0.4" ".atspkg/contrib/atscntrb-libgmp" "https://registry.npmjs.org/atscntrb-libgmp/-/atscntrb-libgmp-1.0.4.tgz"
+-- https://github.com/vmchale/polyglot/archive/0.3.27.tar.gz
 
 fetchDeps :: [Dependency] -> IO ()
 fetchDeps deps = do
@@ -46,21 +38,23 @@
     parallel_ libs >> stopGlobalPool
 
 buildHelper :: Dependency -> IO ()
-buildHelper (Dependency libName dirName url) = do
+buildHelper (Dependency lib' dirName' url'') = do
 
+    let (lib, dirName, url') = (lib', dirName', url'') & each %~ TL.unpack
+
     needsSetup <- not <$> doesDirectoryExist dirName
 
     when needsSetup $ do
 
-        putStrLn ("Fetching library " ++ libName ++ "...")
+        putStrLn ("Fetching library " ++ lib ++ "...")
         manager <- newManager tlsManagerSettings
-        initialRequest <- parseRequest url
+        initialRequest <- parseRequest url'
         response <- responseBody <$> httpLbs (initialRequest { method = "GET" }) manager
 
-        putStrLn ("Unpacking library " ++ libName ++ "...")
+        putStrLn ("Unpacking library " ++ lib ++ "...")
         Tar.unpack dirName . Tar.read . decompress $ response
 
-        putStrLn ("Setting up library " ++ libName ++ "...")
+        putStrLn ("Setting up library " ++ lib ++ "...")
         needsMove <- doesDirectoryExist (dirName ++ "/package")
         when needsMove $ do
             renameDirectory (dirName ++ "/package") "tempdir"
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
@@ -11,15 +11,16 @@
                                  ) where
 
 import           Control.Composition
-import           Control.Monad.IO.Class     (MonadIO)
-import           Data.Maybe                 (fromMaybe)
-import           Data.Semigroup             (Semigroup (..))
-import qualified Data.Text.Lazy             as TL
+import           Control.Monad.IO.Class          (MonadIO)
+import           Data.Maybe                      (fromMaybe)
+import           Data.Semigroup                  (Semigroup (..))
+import qualified Data.Text.Lazy                  as TL
 import           Development.Shake
 import           Development.Shake.ATS
 import           Development.Shake.FilePath
 import           Development.Shake.Man
 import           Dhall
+import           Language.ATS.Package.Dependency
 
 options :: ShakeOptions
 options = shakeOptions { shakeFiles = ".atspkg"
@@ -81,7 +82,7 @@
         mapM_ cmd_ tests
 
 pkgToAction :: Pkg -> Rules ()
-pkgToAction (Pkg bs ts mt v) = do
+pkgToAction (Pkg bs ts mt v _) = do
     action (need ["atspkg.dhall"])
     mapM_ g (bs ++ ts)
     let bins = TL.unpack . target <$> bs
@@ -91,12 +92,10 @@
 
     where g (Bin s t ls gc') = atsBin (Version v) gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t)
 
--- TODO configuration for a library?
-
 data Bin = Bin { src :: Text, target :: Text, libs :: [Text], gc :: Bool }
     deriving (Show, Eq, Generic, Interpret)
 
-data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text, version :: [Integer] }
+data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text, version :: [Integer], dependencies :: [Dependency] }
     deriving (Show, Eq, Generic, Interpret)
 
 printConfig :: IO ()
