diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,3 @@
+* **0.5.0**:
+  2024-01-15: Removed MonadTrans instance, replaced with liftTardisT
+
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,34 @@
+# TardisT
+
+![build status](https://github.com/DanBurton/tardis/actions/workflows/haskell.yml/badge.svg?branch=master)
+
+The State monad allows you
+to send information forwards to the future,
+or to receive such information from the past.
+The Reverse State monad allows you to do the reverse:
+send information backwards to the past,
+or receive information from the future. 
+
+TardisT is a monad transformer
+that provides state operations that allow you
+to send information to both the future *and* the past,
+as well as receive information from both directions.
+It is isomorphic to a StateT on top of a ReverseStateT,
+or vice-versa.
+
+See test/Example.hs for an example.
+
+----
+
+This was inspired by Luke Palmer's blog post on
+the "reverse state monad".
+
+http://lukepalmer.wordpress.com/2008/08/10/mindfuck-the-reverse-state-monad/
+
+See also:
+
+http://panicsonic.blogspot.com/2007/12/backwards-state-or-power-of-laziness.html
+
+----
+
+(c) 2012 Dan Burton
diff --git a/src/Control/Monad/Trans/Tardis.hs b/src/Control/Monad/Trans/Tardis.hs
--- a/src/Control/Monad/Trans/Tardis.hs
+++ b/src/Control/Monad/Trans/Tardis.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE RecursiveDo                     #-}
+{-# LANGUAGE TupleSections #-}
 
 -- | The data definition of a "TardisT"
 -- as well as its primitive operations,
@@ -35,6 +36,7 @@
 
     -- * Other
   , mapTardisT
+  , liftTardisT
   , noState
   ) where
 
@@ -99,6 +101,10 @@
 execTardis :: Tardis bw fw a -> (bw, fw) -> (bw, fw)
 execTardis t = runIdentity . execTardisT t
 
+-- | An action in the underlying monad (or just functor, really)
+-- can also be used in a Tardis by lifting it in.
+liftTardisT :: (Functor m) => m a -> TardisT bw fw m a
+liftTardisT m = TardisT $ \s -> fmap (,s) m
 
 -- | A function that operates on the internal representation of a Tardis
 -- can also be used on a Tardis.
@@ -131,12 +137,6 @@
 instance MonadFix m => Applicative (TardisT bw fw m) where
   pure = return
   (<*>) = ap
-
-
-instance MonadTrans (TardisT bw fw) where
-  lift m = TardisT $ \s -> do
-    x <- m
-    return (x, s)
 
 instance MonadFix m => MonadFix (TardisT bw fw m) where
   mfix f = TardisT $ \s -> do
diff --git a/tardis.cabal b/tardis.cabal
--- a/tardis.cabal
+++ b/tardis.cabal
@@ -1,5 +1,5 @@
 name:                tardis
-version:             0.4.4.0
+version:             0.5.0
 synopsis:            Bidirectional state monad transformer
 homepage:            https://github.com/DanBurton/tardis
 bug-reports:         https://github.com/DanBurton/tardis/issues
@@ -10,6 +10,8 @@
 category:            Control
 build-type:          Simple
 cabal-version:       >=1.10
+tested-with:         GHC == 9.8.1, GHC == 9.6.3, GHC == 9.4.8
+extra-source-files:  README.md, ChangeLog.md
 
 description:
   A Tardis is a combination of both a forwards and a backwards
