diff --git a/penny-bin.cabal b/penny-bin.cabal
--- a/penny-bin.cabal
+++ b/penny-bin.cabal
@@ -1,5 +1,5 @@
 Name: penny-bin
-Version: 0.8.0.0
+Version: 0.10.0.0
 Cabal-version: >=1.8
 Build-Type: Simple
 License: BSD3
@@ -178,7 +178,7 @@
 Executable penny
   Build-depends:
     base ==4.*,
-    penny-lib ==0.8.*
+    penny-lib ==0.10.*
 
   Main-is: penny-main.hs
   GHC-Options: -Wall
@@ -191,13 +191,13 @@
 Executable penny-selloff
   Build-depends:
     base == 4.*,
-    penny-lib ==0.8.*,
+    penny-lib ==0.10.*,
     explicit-exception ==0.1.*,
     containers ==0.5.*,
     semigroups ==0.9.*,
     text ==0.11.*,
     parsec ==3.1.*,
-    multiarg ==0.10.*,
+    multiarg ==0.12.*,
     transformers ==0.3.*
 
   Main-is: penny-selloff.hs
@@ -211,9 +211,9 @@
 Executable penny-diff
   Build-depends:
     base ==4.*,
-    penny-lib ==0.8.*,
+    penny-lib ==0.10.*,
     text ==0.11.*,
-    multiarg ==0.10.*,
+    multiarg ==0.12.*,
     explicit-exception == 0.1.*
 
   Main-is: penny-diff.hs
@@ -227,7 +227,7 @@
 Executable penny-reprint
   Build-depends:
       base ==4.*
-    , penny-lib ==0.8.*
+    , penny-lib ==0.10.*
     , pretty-show ==1.5.*
     , text ==0.11.*
 
@@ -239,9 +239,9 @@
 Executable penny-reconcile
   Build-depends:
       base ==4.*
-    , penny-lib ==0.8.*
+    , penny-lib ==0.10.*
     , text ==0.11.*
-    , multiarg ==0.10.*
+    , multiarg ==0.12.*
     , explicit-exception ==0.1.*
 
   main-is: penny-reconcile.hs
diff --git a/penny-main.hs b/penny-main.hs
--- a/penny-main.hs
+++ b/penny-main.hs
@@ -221,7 +221,7 @@
 schemeLight = Scheme "light" "for light background terminals"
               lightLabels
 
-lightLabels :: Labels (EvenAndOdd TextSpec)
+lightLabels :: Labels (EvenAndOdd (Chunk -> Chunk))
 lightLabels = Labels
   { debit = EvenAndOdd { eoEven = lightDebit lightEvenTextSpec
                        , eoOdd = lightDebit lightOddTextSpec }
@@ -233,21 +233,20 @@
                        , eoOdd = lightOddTextSpec }
   }
 
-lightEvenTextSpec :: TextSpec
-lightEvenTextSpec = defaultTextSpec
+lightEvenTextSpec :: Chunk -> Chunk
+lightEvenTextSpec = id
 
-lightOddTextSpec :: TextSpec
-lightOddTextSpec = switchBackground color8_b_default
-                   color256_b_255 lightEvenTextSpec
+lightOddTextSpec :: Chunk -> Chunk
+lightOddTextSpec = id .+. color8_b_default .+. color256_b_255
 
-lightDebit :: TextSpec -> TextSpec
-lightDebit = switchForeground color8_f_magenta color256_f_52
+lightDebit :: (Chunk -> Chunk) -> Chunk -> Chunk
+lightDebit f = f .+. color8_f_magenta .+. color256_f_52
 
-lightCredit :: TextSpec -> TextSpec
-lightCredit = switchForeground color8_f_cyan color256_f_21
+lightCredit :: (Chunk -> Chunk) -> Chunk -> Chunk
+lightCredit f = f .+. color8_f_cyan .+. color256_f_21
 
-lightZero :: TextSpec -> TextSpec
-lightZero = switchForeground color8_f_black color256_f_0
+lightZero :: (Chunk -> Chunk) -> Chunk -> Chunk
+lightZero f = f .+. color8_f_black .+. color256_f_0
 
 -- | The dark color scheme. You can change various values below to
 -- affect the color scheme.
@@ -255,7 +254,7 @@
 schemeDark = Scheme "dark" "for dark background terminals"
               darkLabels
 
-darkLabels :: Labels (EvenAndOdd TextSpec)
+darkLabels :: Labels (EvenAndOdd (Chunk -> Chunk))
 darkLabels = Labels
   { debit = EvenAndOdd { eoEven = darkDebit darkEvenTextSpec
                        , eoOdd = darkDebit darkOddTextSpec }
@@ -267,33 +266,33 @@
                        , eoOdd = darkOddTextSpec }
   }
 
-darkEvenTextSpec :: TextSpec
-darkEvenTextSpec = defaultTextSpec
+darkEvenTextSpec :: Chunk -> Chunk
+darkEvenTextSpec = id
 
-darkOddTextSpec :: TextSpec
-darkOddTextSpec = switchBackground color8_b_default
-                   color256_b_235 darkEvenTextSpec
+darkOddTextSpec :: Chunk -> Chunk
+darkOddTextSpec = id .+. color8_b_default .+. color256_b_235
 
-darkDebit :: TextSpec -> TextSpec
-darkDebit = switchForeground color8_f_magenta color256_f_208
+darkDebit :: (Chunk -> Chunk) -> Chunk -> Chunk
+darkDebit f = f .+. color8_f_magenta .+. color256_f_208
 
-darkCredit :: TextSpec -> TextSpec
-darkCredit = switchForeground color8_f_cyan color256_f_45
+darkCredit :: (Chunk -> Chunk) -> Chunk -> Chunk
+darkCredit f = f .+. color8_f_cyan .+. color256_f_45
 
-darkZero :: TextSpec -> TextSpec
-darkZero = switchForeground color8_f_white color256_f_15
+darkZero :: (Chunk -> Chunk) -> Chunk -> Chunk
+darkZero f = f .+. color8_f_white .+. color256_f_15
 
+
 -- | Plain scheme has no colors at all.
 schemePlain :: Scheme
 schemePlain = Scheme "plain" "uses default terminal colors"
               plainLabels
 
-plainLabels :: Labels (EvenAndOdd TextSpec)
+plainLabels :: Labels (EvenAndOdd (Chunk -> Chunk))
 plainLabels = Labels
-  { debit = EvenAndOdd defaultTextSpec defaultTextSpec
-  , credit = EvenAndOdd defaultTextSpec defaultTextSpec
-  , zero = EvenAndOdd defaultTextSpec defaultTextSpec
-  , other = EvenAndOdd defaultTextSpec defaultTextSpec
+  { debit = EvenAndOdd id id
+  , credit = EvenAndOdd id id
+  , zero = EvenAndOdd id id
+  , other = EvenAndOdd id id
   }
 
 main :: IO ()
