diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 brady.ouren <brady.ouren@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,14 @@
+guid
+-----
+
+A simple wrapper around `uuid`
+
+```
+import Data.GUID
+
+> genText
+"59d3fc8d-9d56-44aa-99d3-fc8d9d56b4aa"
+
+> genString
+"0a8f83ee-68cc-45e2-8a8f-83ee68ccc5e2"
+```
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,6 @@
+module Setup (main) where
+
+import Distribution.Simple (defaultMain)
+
+main :: IO ()
+main = defaultMain
diff --git a/guid.cabal b/guid.cabal
new file mode 100644
--- /dev/null
+++ b/guid.cabal
@@ -0,0 +1,46 @@
+name: guid
+version: 0.1.0
+cabal-version: >=1.10
+build-type: Simple
+license: MIT
+license-file: LICENSE.md
+copyright: 2015 brady.ouren <brady.ouren@gmail.com>
+maintainer: brady.ouren <brady.ouren@gmail.com>
+synopsis: A simple wrapper around uuid
+description:
+    A simple wrapper around uuid
+category: base
+author: brady.ouren <brady.ouren@gmail.com>
+tested-with: GHC ==7.8 GHC ==7.6
+extra-source-files:
+  README.md
+
+source-repository head
+  type:     git
+  location: https://github.com/tippenein/guid
+
+library
+  hs-source-dirs: src
+  exposed-modules:
+      Data.GUID
+  build-depends:
+      base ==4.*
+    , bytestring
+    , text
+    , uuid
+    , uuid-types
+  default-language: Haskell2010
+  ghc-options: -Wall -fno-warn-missing-signatures
+
+test-suite tests
+  type:                exitcode-stdio-1.0
+  hs-source-dirs:      test
+  main-is:             Spec.hs
+  build-depends:
+      base -any
+    , guid -any
+    , HUnit -any
+  default-language:    Haskell2010
+  other-modules:
+      GuidSpec
+  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -fno-warn-missing-signatures
diff --git a/src/Data/GUID.hs b/src/Data/GUID.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/GUID.hs
@@ -0,0 +1,11 @@
+module Data.GUID where
+
+import Data.Text
+import Data.UUID.Types
+import Data.UUID.V4 as UUID
+
+genText :: IO Text
+genText = toText <$> UUID.nextRandom
+
+genString :: IO String
+genString = toString <$> UUID.nextRandom
diff --git a/test/GuidSpec.hs b/test/GuidSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/GuidSpec.hs
@@ -0,0 +1,11 @@
+module GuidSpec (spec) where
+
+import Guid
+
+import Test.Hspec
+
+spec :: Spec
+spec =
+  describe "main" $ do
+    it "returns the unit" $
+      main `shouldReturn` ()
diff --git a/test/Spec.hs b/test/Spec.hs
new file mode 100644
--- /dev/null
+++ b/test/Spec.hs
@@ -0,0 +1,1 @@
+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
