diff --git a/.gitignore b/.gitignore
new file mode 100644
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+# Vim swap files
+*.sw?
+
+# stack build artifacts
+.stack-work/
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -72,20 +72,15 @@
 Binaries
 
 - epub-tools is available for Arch Linux [from the AUR](http://aur.archlinux.org/packages/epub-tools/)
-- Download [binaries for Windows](http://ui3.info/d/proj/epub-tools/epub-tools-2.9-win.zip)
-
-
-Building and installing from source with cabal-install:
-
-      $ cabal update ; cabal install epub-tools
+- Download [binaries for Windows](http://ui3.info/d/proj/epub-tools/epub-tools-2.10-win.zip)
 
 
 Getting source for development
 
 - Download the cabalized source package [from Hackage](http://hackage.haskell.org/package/epub-tools)
-- Get the source with darcs: `$ darcs clone http://hub.darcs.net/dino/epub-tools`
+- Get the source with git: `$ git clone https://github.com/dino-/epub-tools.git`
 - Get the source with stack: `$ stack unpack epub-tools`
-- If you're just looking, [browse the source](http://hub.darcs.net/dino/epub-tools)
+- If you're just looking, [browse the source](https://github.com/dino-/epub-tools)
 
 
 Once you have source, building the usual way:
diff --git a/TODO.md b/TODO.md
--- a/TODO.md
+++ b/TODO.md
@@ -27,6 +27,7 @@
 
 ## epubname
 
+- Switch from using awful String everywhere to nice, Unicode Text. This may alleviate some of the special typographic character problems I have from time to time.
 - in usage, encourage users to contact the developer
 - Add info in the usage about submitting metadata to me using epubmeta when there are problems.
 - Rethink that Publisher business, maybe get rid of it.
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,12 @@
+2.10 (2017-12-24)
+
+   * Changed the Stackage resolver from a nightly to an lts
+   * Now using a less-fragile `Printf*` type signature
+   * Removed an unused GHC options compile directive
+   * Added a missing module to all other-modules stanzas
+   * Added a unit test for authors with a middle-name
+
+
 2.9 (2016-10-19)
 
    * Switched build to stack
diff --git a/epub-tools.cabal b/epub-tools.cabal
--- a/epub-tools.cabal
+++ b/epub-tools.cabal
@@ -1,19 +1,20 @@
 name:                epub-tools
 cabal-version:       >= 1.10
-version:             2.9
+version:             2.10
 build-type:          Simple
 license:             BSD3
 license-file:        LICENSE
 copyright:           2008-2016 Dino Morelli
 author:              Dino Morelli 
 maintainer:          Dino Morelli <dino@ui3.info>
-homepage:            http://hub.darcs.net/dino/epub-tools
+homepage:            https://github.com/dino-/epub-tools.git
 synopsis:            Command line utilities for working with epub files
 description:         A suite of command-line utilities for creating and manipulating epub book files. Included are: epubmeta, epubname, epubzip
 category:            Application, Console
 tested-with:         GHC >= 8.0.1
 
-extra-source-files:  changelog.md
+extra-source-files:  .gitignore
+                     changelog.md
                      doc/dev/notes.md
                      doc/hcar/epubtoolsCommandlineepubU-De.tex
                      doc/INSTALL
@@ -24,12 +25,11 @@
                      TODO.md
                      util/all-books.hs
                      util/install.hs
-                     util/prefs/boring
                      util/win-dist.sh
 
 source-repository    head
-   type:             darcs
-   location:         http://hub.darcs.net/dino/epub-tools
+   type:             git
+   location:         https://github.com/dino-/epub-tools.git
 
 executable           epubmeta
    main-is:          EpubTools/epubmeta.hs
@@ -43,6 +43,7 @@
                      EpubTools.EpubMeta.Import
                      EpubTools.EpubMeta.Opts
                      EpubTools.EpubMeta.Util
+                     Paths_epub_tools
    ghc-options:      -Wall -rtsopts -with-rtsopts=-K32m
    default-language: Haskell2010
 
@@ -62,6 +63,7 @@
                      EpubTools.EpubName.Opts
                      EpubTools.EpubName.Prompt
                      EpubTools.EpubName.Util
+                     Paths_epub_tools
    ghc-options:      -Wall -rtsopts -with-rtsopts=-K32m
    default-language: Haskell2010
 
@@ -82,6 +84,7 @@
                      EpubTools.EpubName.Util
                      EpubTools.Test.EpubName.Format
                      EpubTools.Test.EpubName.PubYear
+                     Paths_epub_tools
    ghc-options:      -Wall -rtsopts -with-rtsopts=-K32m
    default-language: Haskell2010
 
@@ -100,5 +103,6 @@
                      EpubTools.EpubName.Opts
                      EpubTools.EpubName.Util
                      EpubTools.EpubZip.Opts
+                     Paths_epub_tools
    ghc-options:      -Wall
    default-language: Haskell2010
diff --git a/src/EpubTools/EpubName/Main.hs b/src/EpubTools/EpubName/Main.hs
--- a/src/EpubTools/EpubName/Main.hs
+++ b/src/EpubTools/EpubName/Main.hs
@@ -2,7 +2,6 @@
 -- Author: Dino Morelli <dino@ui3.info>
 
 {-# LANGUAGE FlexibleContexts #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
 
 module EpubTools.EpubName.Main
    ( initialize
@@ -60,7 +59,7 @@
       return fs
 
 
-showRulesSource :: (Monad m, PrintfType (t -> m ())) =>
-   Maybe Int -> t -> m ()
+showRulesSource :: (Monad m, PrintfType (m ()), PrintfArg t, Num a, Eq a) =>
+   Maybe a -> t -> m ()
 showRulesSource (Just 1) name = printf "Rules loaded from: %s\n" name
 showRulesSource _        _    = return ()
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,4 +1,3 @@
-resolver: nightly-2016-10-18
-
+resolver: lts-10.0
 packages:
 - .
diff --git a/testsuite/EpubTools/Test/EpubName/Format.hs b/testsuite/EpubTools/Test/EpubName/Format.hs
--- a/testsuite/EpubTools/Test/EpubName/Format.hs
+++ b/testsuite/EpubTools/Test/EpubName/Format.hs
@@ -31,6 +31,7 @@
       , testAuthorFileas
       , testAuthorFileasParens
       , testAuthorFull
+      , testAuthorMiddle
       , testMultiAutCreators
       , testMultiAutOneString
       , testNoAuthor
@@ -212,6 +213,23 @@
       expected =
          ( "ordinary_book"
          , "MelvilleHerman-MobyDick.epub"
+         )
+
+
+testAuthorMiddle :: (Globals, [Formatter]) -> Test
+testAuthorMiddle (gs, fs) = TestCase $
+   assertNewName gs { gMetadata = meta } fs "author with middle-name" expected
+   where
+      meta = emptyMetadata
+         { metaCreators = [Creator (Just "aut")
+            (Just "Wallace, David Foster")
+            Nothing
+            "David Foster Wallace"]
+         , metaTitles = [Title Nothing Nothing Nothing "Infinite Jest"]
+         }
+      expected =
+         ( "ordinary_book"
+         , "WallaceDavidFoster-InfiniteJest.epub"
          )
 
 
diff --git a/util/prefs/boring b/util/prefs/boring
deleted file mode 100644
--- a/util/prefs/boring
+++ /dev/null
@@ -1,124 +0,0 @@
-# This file contains a list of extended regular expressions, one per
-# line. A file path matching any of these expressions will be filtered
-# out during `darcs add', or when the `--look-for-adds' flag is passed
-# to `darcs whatsnew' and `record'. The entries in ~/.darcs/boring (if
-# it exists) supplement those in this file.
-# 
-# Blank lines, and lines beginning with an octothorpe (#) are ignored.
-# See regex(7) for a description of extended regular expressions.
-
-### compiler and interpreter intermediate files
-# haskell (ghc) interfaces
-\.hi$
-\.hi-boot$
-\.o-boot$
-# object files
-\.o$
-\.o\.cmd$
-# profiling haskell
-\.p_hi$
-\.p_o$
-# haskell program coverage resp. profiling info
-\.tix$
-\.prof$
-# fortran module files
-\.mod$
-# linux kernel
-\.ko\.cmd$
-\.mod\.c$
-(^|/)\.tmp_versions($|/)
-# *.ko files aren't boring by default because they might
-# be Korean translations rather than kernel modules
-# \.ko$
-# python, emacs, java byte code
-\.py[co]$
-\.elc$
-\.class$
-# objects and libraries; lo and la are libtool things
-\.(obj|a|exe|so|lo|la)$
-# compiled zsh configuration files
-\.zwc$
-# Common LISP output files for CLISP and CMUCL
-\.(fas|fasl|sparcf|x86f)$
-
-### build and packaging systems
-# cabal intermediates
-\.installed-pkg-config
-\.setup-config
-# standard cabal build dir, might not be boring for everybody
-# ^dist(/|$)
-# autotools
-(^|/)autom4te\.cache($|/)
-(^|/)config\.(log|status)$
-# microsoft web expression, visual studio metadata directories
-\_vti_cnf$
-\_vti_pvt$
-# gentoo tools
-\.revdep-rebuild.*
-# generated dependencies
-^\.depend$
-
-### version control systems
-# cvs
-(^|/)CVS($|/)
-\.cvsignore$
-# cvs, emacs locks
-^\.#
-# rcs
-(^|/)RCS($|/)
-,v$
-# subversion
-(^|/)\.svn($|/)
-# mercurial
-(^|/)\.hg($|/)
-# git
-(^|/)\.git($|/)
-# bzr
-\.bzr$
-# sccs
-(^|/)SCCS($|/)
-# darcs
-(^|/)_darcs($|/)
-(^|/)\.darcsrepo($|/)
-^\.darcs-temp-mail$
--darcs-backup[[:digit:]]+$
-# gnu arch
-(^|/)(\+|,)
-(^|/)vssver\.scc$
-\.swp$
-(^|/)MT($|/)
-(^|/)\{arch\}($|/)
-(^|/).arch-ids($|/)
-# bitkeeper
-(^|/)BitKeeper($|/)
-(^|/)ChangeSet($|/)
-
-### miscellaneous
-# backup files
-~$
-\.bak$
-\.BAK$
-# patch originals and rejects
-\.orig$
-\.rej$
-# X server
-\..serverauth.*
-# image spam
-\#
-(^|/)Thumbs\.db$
-# vi, emacs tags
-(^|/)(tags|TAGS)$
-#(^|/)\.[^/]
-# core dumps
-(^|/|\.)core$
-# partial broken files (KIO copy operations)
-\.part$
-# waf files, see http://code.google.com/p/waf/
-(^|/)\.waf-[[:digit:].]+-[[:digit:]]+($|/)
-(^|/)\.lock-wscript$
-# mac os finder
-(^|/)\.DS_Store$
-# emacs saved sessions (desktops)
-(^|.*/)\.emacs\.desktop(\.lock)?$
-
-(^|/).stack-work($|/)
