diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/Setup.lhs b/Setup.lhs
deleted file mode 100644
--- a/Setup.lhs
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env runhaskell
-\begin{code}
-{-# OPTIONS_GHC -Wall #-}
-module Main (main) where
-
-import Data.List ( nub )
-import Data.Version ( showVersion )
-import Distribution.Package ( PackageName(PackageName), PackageId, InstalledPackageId, packageVersion, packageName )
-import Distribution.PackageDescription ( PackageDescription(), TestSuite(..) )
-import Distribution.Simple ( defaultMainWithHooks, UserHooks(..), simpleUserHooks )
-import Distribution.Simple.Utils ( rewriteFile, createDirectoryIfMissingVerbose )
-import Distribution.Simple.BuildPaths ( autogenModulesDir )
-import Distribution.Simple.Setup ( BuildFlags(buildVerbosity), fromFlag )
-import Distribution.Simple.LocalBuildInfo ( withLibLBI, withTestLBI, LocalBuildInfo(), ComponentLocalBuildInfo(componentPackageDeps) )
-import Distribution.Verbosity ( Verbosity )
-import System.FilePath ( (</>) )
-
-main :: IO ()
-main = defaultMainWithHooks simpleUserHooks
-  { buildHook = \pkg lbi hooks flags -> do
-     generateBuildModule (fromFlag (buildVerbosity flags)) pkg lbi
-     buildHook simpleUserHooks pkg lbi hooks flags
-  }
-
-generateBuildModule :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
-generateBuildModule verbosity pkg lbi = do
-  let dir = autogenModulesDir lbi
-  createDirectoryIfMissingVerbose verbosity True dir
-  withLibLBI pkg lbi $ \_ libcfg -> do
-    withTestLBI pkg lbi $ \suite suitecfg -> do
-      rewriteFile (dir </> "Build_" ++ testName suite ++ ".hs") $ unlines
-        [ "module Build_" ++ testName suite ++ " where"
-        , "deps :: [String]"
-        , "deps = " ++ (show $ formatdeps (testDeps libcfg suitecfg))
-        ]
-  where
-    formatdeps = map (formatone . snd)
-    formatone p = case packageName p of
-      PackageName n -> n ++ "-" ++ showVersion (packageVersion p)
-
-testDeps :: ComponentLocalBuildInfo -> ComponentLocalBuildInfo -> [(InstalledPackageId, PackageId)]
-testDeps xs ys = nub $ componentPackageDeps xs ++ componentPackageDeps ys
-
-\end{code}
diff --git a/casr-logbook.cabal b/casr-logbook.cabal
--- a/casr-logbook.cabal
+++ b/casr-logbook.cabal
@@ -1,5 +1,5 @@
 name:               casr-logbook
-version:            0.3.0
+version:            0.5.0
 license:            OtherLicense
 license-file:       LICENSE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
@@ -17,16 +17,13 @@
 homepage:           https://github.com/tonymorris/casr-logbook
 bug-reports:        https://github.com/tonymorris/casr-logbook/issues
 cabal-version:      >= 1.10
-build-type:         Custom
+build-type:         Simple
 extra-source-files: changelog
 
 source-repository   head
   type:             git
   location:         git@github.com:tonymorris/casr-logbook.git
 
-flag                small_base
-  description:      Choose the new, split-up base package.
-
 library
   default-language:
                     Haskell2010
@@ -35,12 +32,10 @@
                     base >= 4.8 && < 5
                     , containers >= 0.4 && < 0.6
                     , lucid >= 2.9 && < 3
-                    , digit >= 0.2.8 && < 3
+                    , digit >= 0.7 && < 0.8
                     , time >= 1.5 && < 2
                     , lucid >= 2.9 && < 3
                     , lens >= 4.1 && < 5
-                    , digit >= 0.2.8 && < 3
-                    , time >= 1.5 && < 1.6
                     , text >= 1.2 && < 1.3
   ghc-options:
                     -Wall
@@ -104,27 +99,3 @@
                     Data.Aviation.Casr.Logbook.Reports.Meta.ExpenseReport
                     Data.Aviation.Casr.Logbook.Reports.Meta.Html
 
-test-suite doctests
-  type:
-                    exitcode-stdio-1.0
-
-  main-is:
-                    doctests.hs
-
-  default-language:
-                    Haskell2010
-
-  build-depends:
-                    base < 5 && >= 3
-                    , doctest >= 0.9.7
-                    , filepath >= 1.3
-                    , directory >= 1.1
-                    , QuickCheck >= 2.0
-                    , template-haskell >= 2.8
-
-  ghc-options:
-                    -Wall
-                    -threaded
-
-  hs-source-dirs:
-                    test
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+0.5.0
+
+* update `digit` package.
+
 0.3.0
 
 * Move all packages into one.
diff --git a/src/Data/Aviation/Casr/Logbook/Html/Html.hs b/src/Data/Aviation/Casr/Logbook/Html/Html.hs
--- a/src/Data/Aviation/Casr/Logbook/Html/Html.hs
+++ b/src/Data/Aviation/Casr/Logbook/Html/Html.hs
@@ -94,7 +94,7 @@
   )
 import Data.Bool(not)
 import Data.Char(toUpper)
-import Data.Digit(Digit)
+import Data.Digit(DecDigit)
 import Data.Eq((==))
 import Data.Foldable(fold, sequence_, mapM_, null)
 import Data.Function(($))
@@ -221,7 +221,7 @@
                   fromString f
 
 htmlAviatorARN ::
-  [Digit]
+  [DecDigit]
   -> Html ()
 htmlAviatorARN a =
   when (not . null $ a) $
diff --git a/src/Data/Aviation/Casr/Logbook/Types/Aviator.hs b/src/Data/Aviation/Casr/Logbook/Types/Aviator.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/Aviator.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/Aviator.hs
@@ -13,7 +13,7 @@
 import Data.Aviation.Casr.Logbook.Types.Rating(Rating)
 import Data.Eq(Eq)
 import Data.Ord(Ord)
-import Data.Digit(Digit)
+import Data.Digit(DecDigit)
 import Data.Maybe(Maybe(Nothing, Just))
 import Data.String(String)
 import Data.Time(Day)
@@ -23,7 +23,7 @@
   Aviator {
     _surname :: String
   , _firstname :: String
-  , _arn :: [Digit]
+  , _arn :: [DecDigit]
   , _dob :: Maybe Day
   , _ratings :: [Rating]
   } deriving (Eq, Ord, Show)
@@ -45,7 +45,7 @@
 nodobaviator ::
   String
   -> String
-  -> [Digit]
+  -> [DecDigit]
   -> [Rating]
   -> Aviator
 nodobaviator s f r =
@@ -58,7 +58,7 @@
 dobaviator ::
   String
   -> String
-  -> [Digit]
+  -> [DecDigit]
   -> Day
   -> [Rating]
   -> Aviator
diff --git a/src/Data/Aviation/Casr/Logbook/Types/DayNight.hs b/src/Data/Aviation/Casr/Logbook/Types/DayNight.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/DayNight.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/DayNight.hs
@@ -11,7 +11,7 @@
 
 import Control.Lens(makeClassy)
 import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount(TimeAmount), zerotimeamount)
-import Data.Digit(Digit)
+import Data.Digit(DecDigit)
 import Data.Eq(Eq)
 import Data.Int(Int)
 import Data.Monoid(mappend)
@@ -28,14 +28,14 @@
 
 day ::
   Int
-  -> Digit
+  -> DecDigit
   -> DayNight
 day h p =
   DayNight (TimeAmount h p) zerotimeamount
 
 night ::
   Int
-  -> Digit
+  -> DecDigit
   -> DayNight
 night h p =
   DayNight zerotimeamount (TimeAmount h p)
diff --git a/src/Data/Aviation/Casr/Logbook/Types/TimeAmount.hs b/src/Data/Aviation/Casr/Logbook/Types/TimeAmount.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/TimeAmount.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/TimeAmount.hs
@@ -10,9 +10,13 @@
 , timeAmountBy10
 ) where
 
-import Control.Lens(makeClassy, ( # ))
+import Data.Bool(Bool, bool)
+import Data.Maybe(fromMaybe)
+import Data.Ord((>))
+import Prelude(Integral, divMod, mod)
+import Control.Lens(makeClassy, (^?), over, _1, ( # ))
 import Data.Eq(Eq)
-import Data.Digit(Digit, x0, digit, (/+/))
+import Data.Digit(DecDigit, x0, x1, integralDecimal)
 import Data.Int(Int)
 import Data.Monoid(Monoid(mempty, mappend))
 import Data.Ord(Ord)
@@ -21,13 +25,13 @@
 data TimeAmount =
   TimeAmount {
     _hours :: Int
-  , _tenthofhour :: Digit
+  , _tenthofhour :: DecDigit
   } deriving (Eq, Ord, Show)
 
 makeClassy ''TimeAmount
 
 parttimeamount ::
-  Digit
+  DecDigit
   -> TimeAmount
 parttimeamount =
   TimeAmount 0
@@ -43,16 +47,42 @@
   -> TimeAmount
 TimeAmount f1 p1 `addtimeamount` TimeAmount f2 p2 =
   let (h, q) = p1 /+/ p2
-  in  TimeAmount (f1 + f2 + digit # h) q 
+  in  TimeAmount (f1 + f2 + integralDecimal # (h :: DecDigit)) q 
 
 timeAmountBy10 ::
   TimeAmount
   -> Int
 timeAmountBy10 (TimeAmount a b) =
-  a * 10 + digit # b
+  a * 10 + integralDecimal # b
 
 instance Monoid TimeAmount where
   mempty =
     zerotimeamount
   mappend =
     addtimeamount
+
+---- belongs in digit package
+
+mod10 ::
+  Integral a =>
+  a
+  -> DecDigit
+mod10 n =
+  let r = n `mod` 10
+  in fromMaybe (mod10 r) (r ^? integralDecimal)
+
+addDecDigit ::
+  DecDigit
+  -> DecDigit
+  -> (Bool, DecDigit)
+addDecDigit a b =
+  let (x, r) =
+        (integralDecimal # a + integralDecimal # b) `divMod` 10
+  in  (x > 0, mod10 (r :: Int))
+
+(/+/) ::
+  DecDigit
+  -> DecDigit
+  -> (DecDigit, DecDigit)
+(/+/) a b =
+  over _1 (bool x0 x1) (addDecDigit a b)
diff --git a/test/doctests.hs b/test/doctests.hs
deleted file mode 100644
--- a/test/doctests.hs
+++ /dev/null
@@ -1,32 +0,0 @@
-module Main where
-
-import Build_doctests (deps)
-import Control.Applicative
-import Control.Monad
-import Data.List
-import System.Directory
-import System.FilePath
-import Test.DocTest
-
-main ::
-  IO ()
-main =
-  getSources >>= \sources -> doctest $
-      "-isrc"
-    : "-idist/build/autogen"
-    : "-optP-include"
-    : "-optPdist/build/autogen/cabal_macros.h"
-    : "-hide-all-packages"
-    : map ("-package="++) deps ++ sources
-
-getSources :: IO [FilePath]
-getSources = filter (isSuffixOf ".hs") <$> go "src"
-  where
-    go dir = do
-      (dirs, files) <- getFilesAndDirectories dir
-      (files ++) . concat <$> mapM go dirs
-
-getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])
-getFilesAndDirectories dir = do
-  c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir
-  (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c
