diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,8 @@
+# 0.1.2
+* Add `Invariant` instances for `Dual` and `Endo`
+
+# 0.1.1
+* Bump `contravariant` upper version bounds
+
+# 0.1.0
+* Initial commit
diff --git a/Data/Functor/Invariant.hs b/Data/Functor/Invariant.hs
--- a/Data/Functor/Invariant.hs
+++ b/Data/Functor/Invariant.hs
@@ -12,7 +12,7 @@
 
 import Data.Functor.Contravariant
 import Data.Functor.Contravariant.Compose
-
+import Data.Monoid (Dual(Dual), Endo(Endo))
 
 
 
@@ -91,9 +91,12 @@
 instance Arrow arr => Invariant2 (WrappedArrow arr) where
   invmap2 _ f' g _ (WrapArrow x) = WrapArrow $ arr g Cat.. x Cat.. arr f'
 
-
-
+-- | @Data.Monoid@
+instance Invariant Dual where invmap f _ (Dual x) = Dual (f x)
 
+-- | @Data.Monoid@
+instance Invariant Endo where
+  invmap f g (Endo x) = Endo (f . x . g)
 
 -- | from the @contravariant@ package
 instance Invariant Predicate where invmap = const contramap
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# `invariant` [![Hackage version](https://img.shields.io/hackage/v/invariant.svg?style=flat)](http://hackage.haskell.org/package/invariant) [![Build Status](https://img.shields.io/travis/nfrisby/invariant-functors.svg?style=flat)](https://travis-ci.org/nfrisby/invariant-functors)
+
+Haskell98 invariant functors
diff --git a/invariant.cabal b/invariant.cabal
--- a/invariant.cabal
+++ b/invariant.cabal
@@ -1,5 +1,5 @@
 name: invariant
-version: 0.1.1
+version: 0.1.2
 synopsis: Haskell 98 invariant functors
 description: Haskell 98 invariant functors
 
@@ -8,15 +8,30 @@
 license: BSD3
 license-file: LICENSE
 author: Nicolas Frisby <nicolas.frisby@gmail.com>
-maintainer: Nicolas Frisby <nicolas.frisby@gmail.com>
+maintainer: Nicolas Frisby <nicolas.frisby@gmail.com>, Ryan Scott <ryan.gl.scott@ku.edu>
 
 build-type: Simple
-cabal-version: >= 1.6
-
+cabal-version:  >= 1.9.2
+extra-source-files: CHANGELOG.md, README.md
 
+source-repository head
+  type:     git
+  location: git://github.com/nfrisby/invariant-functors.git
 
 library
-  build-depends: base >= 4 && < 5
-  build-depends: contravariant >= 0.1.2 && < 2.0
-
+  build-depends:
+      base >= 4 && < 5
+    , contravariant >= 0.1.2 && < 2
   exposed-modules: Data.Functor.Invariant
+  ghc-options: -Wall
+
+test-suite qc-tests
+  type: exitcode-stdio-1.0
+  hs-source-dirs: test
+  main-is: Spec.hs
+  build-depends:
+      base >= 4 && < 5
+    , hspec >= 1.8
+    , invariant
+    , QuickCheck >= 2 && < 3
+  ghc-options: -Wall
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 #-}
