diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
diff --git a/MuCheck-QuickCheck.cabal b/MuCheck-QuickCheck.cabal
new file mode 100644
--- /dev/null
+++ b/MuCheck-QuickCheck.cabal
@@ -0,0 +1,40 @@
+name:                MuCheck-QuickCheck
+version:             0.2.0.0
+synopsis:            Automated Mutation Testing for QuickCheck tests
+description:         This package contains the test adapter for QuickCheck tests to use it with MuCheck
+homepage:            https://bitbucket.com/osu-testing/mucheck-quickcheck
+license:             GPL-2
+license-file:        LICENSE
+author:              Rahul Gopinath <rahul@gopinath.org>
+maintainer:          rahul@gopinath.org
+category:            Testing
+build-type:          Simple
+cabal-version:       >= 1.10
+extra-source-files:  changes.md
+
+source-repository    head
+  type:              git
+  location:          https://bitbucket.org/osu-testing/mucheck-quickcheck.git
+
+source-repository    this
+  type:              git
+  location:          https://bitbucket.org/osu-testing/mucheck-quickcheck.git
+  tag:               0.2.0.0
+
+executable mucheck-quickcheck
+  build-depends:    base >=4 && <5,
+                    QuickCheck>=2.6,
+                    MuCheck== 0.2.0.*
+  default-language: Haskell2010
+  hs-source-dirs:   src
+  main-is:          Main.hs
+  ghc-options:     -Wall -fno-warn-orphans
+
+library
+  exposed-modules:  Test.MuCheck.TestAdapter.QuickCheck
+  build-depends:    base >=4 && <5,
+                    QuickCheck>=2.6,
+                    MuCheck==0.2.0.*
+  default-language: Haskell2010
+  hs-source-dirs:   src
+
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,3 @@
+import Distribution.Simple
+
+main = defaultMain
diff --git a/changes.md b/changes.md
new file mode 100644
--- /dev/null
+++ b/changes.md
diff --git a/src/Main.hs b/src/Main.hs
new file mode 100644
--- /dev/null
+++ b/src/Main.hs
@@ -0,0 +1,22 @@
+module Main where
+import System.Environment (getArgs, withArgs)
+
+import Test.MuCheck (mucheck)
+import Test.MuCheck.TestAdapter.QuickCheck
+import Test.MuCheck.TestAdapter
+import Test.MuCheck.Utils.Print
+
+main :: IO ()
+main = do
+  val <- getArgs
+  case val of
+    ("-h" : _ ) -> help
+    (fn : file : modulename : args) -> withArgs [] $ mucheck tsFn fn file modulename args
+    _ -> error "Need function file modulename [args]\n\tUse -h to get help"
+  where tsFn :: [MutantFilename] -> [InterpreterOutput QuickCheckSummary] -> Summary
+        tsFn = testSummary
+
+
+help :: IO ()
+help = putStrLn $ "mucheck function file modulename [args]\n" ++ showAS ["E.g:",
+       " mucheck-quickcheck qsort Examples/QuickCheckTest.hs Examples.QuickCheckTest 'quickCheckResult idEmpProp' 'quickCheckResult revProp' 'quickCheckResult modelProp'",""]
diff --git a/src/Test/MuCheck/TestAdapter/QuickCheck.hs b/src/Test/MuCheck/TestAdapter/QuickCheck.hs
new file mode 100644
--- /dev/null
+++ b/src/Test/MuCheck/TestAdapter/QuickCheck.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable, TypeSynonymInstances #-}
+-- | Module for using quickcheck properties
+module Test.MuCheck.TestAdapter.QuickCheck where
+import qualified Test.QuickCheck.Test as Qc
+import Test.MuCheck.TestAdapter
+import Test.MuCheck.Utils.Print (showA, showAS)
+
+import Data.Typeable
+import Data.List((\\))
+import Data.Either (partitionEithers)
+
+deriving instance Typeable Qc.Result
+type QuickCheckSummary = Qc.Result
+
+-- | Summarizable instance of `QuickCheck.Result`
+instance Summarizable QuickCheckSummary where
+  testSummary mutantFiles results = Summary logMsg
+    where (errorCases, executedCases) = partitionEithers results
+          [successCases, failureCases, gaveUpCases] = map (\c -> filter (c . snd) executedCases) [isSuccess, isFailure, isOther]
+          errorFiles = mutantFiles \\ map fst executedCases
+          logMsg = showAS ["Details:",
+                           "Loading error files:", showA errorFiles,
+                           "Loading error messages:", showA errorCases,
+                           "Successes:", showA successCases,
+                           "Failure:", showA failureCases,
+                           "Gaveups:", showA gaveUpCases]
+  isSuccess = Qc.isSuccess
+  isFailure Qc.Failure{} = True
+  isFailure _            = False
+  isOther   Qc.GaveUp{}  = True
+  isOther   _            = False
