diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
 # citeproc changelog
 
+## 0.1.1
+
+  * Ensure that uncited references are sorted last
+    when it comes to assigning citation numbers (#22).
+  * Remove "capitalize initial term" feature.  This is required by
+    the test suite but not the spec.  It makes more sense for us to do
+    this capitalization in the calling program, e.g. pandoc.  For some
+    citations in note styles may already be in notes and thus not
+    trigger separate footnotes.  If initial terms had been capitalized,
+    we'd need to uncapitalize, and that is hard to do reliably.
+  * Treat empty `FancyVal` as an empty value.
+  * Derive Functor, Traversable, Foldable for Result [API change].
+
 ## 0.1.0.3
 
   * Better handling of author-only/suppress-author.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -89,7 +89,14 @@
 
 Although this library is much more accurate in implementing the
 CSL spec than pandoc-citeproc was, it still fails some of the
-tests from the CSL test suite (58/845).  However, most of the
+tests from the CSL test suite (63/845).  However, most of the
 failures are on minor corner cases, and in many cases the
 expected behavior goes beyond what is required by the CSL spec.
+(For example, we intentionally refrain from capitalizing
+terms in initial position in note styles. It makes more sense
+for the calling program, e.g. pandoc, to do the capitalization
+when it puts the citations in notes, since some citations
+in note styles may already be in notes and in this case
+their rendering may not require capitalization. It is easy
+to capitalize reliably, hard to uncapitalize reliably.)
 
diff --git a/citeproc.cabal b/citeproc.cabal
--- a/citeproc.cabal
+++ b/citeproc.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                citeproc
-version:             0.1.0.3
+version:             0.1.1
 synopsis:            Generates citations and bibliography from CSL styles.
 description:         citeproc parses CSL style files and uses them to
                      generate a list of formatted citations and bibliography
diff --git a/src/Citeproc/Eval.hs b/src/Citeproc/Eval.hs
--- a/src/Citeproc/Eval.hs
+++ b/src/Citeproc/Eval.hs
@@ -132,8 +132,9 @@
             (concatMap (map citationItemId . citationItems) citations)
             [(1 :: Int)..]
       let citeIds = M.keysSet citationOrder
-      let sortedCiteIds = sortOn (`M.lookup` citationOrder)
-                                  (map referenceId refs)
+      let sortedCiteIds = sortOn
+              (fromMaybe maxBound . (`M.lookup` citationOrder))
+              (map referenceId refs)
       assignCitationNumbers sortedCiteIds
       -- sorting of bibliography, insertion of citation-number
       (bibCitations, bibSortKeyMap) <-
@@ -901,9 +902,6 @@
                     _ -> [1..]
   items <- mapM evalItem (zip positions (citationItems citation))
 
-  styleOpts <- asks contextStyleOptions
-  let isNote = styleIsNoteStyle styleOpts
-
   -- see display_SecondFieldAlignMigratePunctuation.txt
   let moveSuffixInsideDisplay zs =
         case (lastMay zs, formatSuffix formatting) of
@@ -919,13 +917,10 @@
             | otherwise -> (\ys' -> initSafe zs ++ [Formatted f ys']) <$>
                              moveSuffixInsideDisplay ys
           _ -> Nothing
-  let items' = if isNote
-                  then capitalizeInitialTerm items
-                  else items
   return $
-    case moveSuffixInsideDisplay items' of
-      Nothing      -> formatted formatting items'
-      Just items'' -> formatted formatting{ formatSuffix = Nothing } items''
+    case moveSuffixInsideDisplay items of
+      Nothing     -> formatted formatting items
+      Just items' -> formatted formatting{ formatSuffix = Nothing } items'
  where
   formatting = layoutFormatting layout
 
@@ -2202,11 +2197,8 @@
            HasVariable "locator" -> hasLocator
            HasVariable t ->
              case lookupVariable t ref of
-               Just (TextVal x)   -> x /= mempty
-               Just (FancyVal x)  -> toText x /= mempty
-               Just (NamesVal xs) -> not (null xs)
-               Just _             -> True
-               Nothing            -> False
+               Just x  -> isNonEmpty x
+               Nothing -> False
            HasType t -> lookupVariable "type" ref == Just (TextVal t)
            IsUncertainDate t -> case lookupVariable t ref of
                                   Just (DateVal d) -> dateCirca d
@@ -2331,12 +2323,19 @@
 askVariable v = do
   ref <- gets stateReference
   case lookupVariable v ref of
-    Just x -> do
+    Just x | isNonEmpty x -> do
       updateVarCount 1 1
       return $ Just x
-    Nothing -> do
+    _ -> do
       updateVarCount 1 0
       return Nothing
+
+isNonEmpty :: CiteprocOutput a => Val a -> Bool
+isNonEmpty (TextVal t) = not (T.null t)
+isNonEmpty (FancyVal x) = x /= mempty
+isNonEmpty (NamesVal []) = False
+isNonEmpty (DateVal (Date [] _ Nothing Nothing)) = False
+isNonEmpty _       = True
 
 citationLabel :: Reference a -> Val a
 citationLabel ref = TextVal trigraph
diff --git a/src/Citeproc/Pandoc.hs b/src/Citeproc/Pandoc.hs
--- a/src/Citeproc/Pandoc.hs
+++ b/src/Citeproc/Pandoc.hs
@@ -69,8 +69,7 @@
       DisplayRightInline -> B.spanWith ("",["csl-right-inline"],[])
       DisplayIndent      -> B.spanWith ("",["csl-indent"],[])
   addQuotes             = B.doubleQuoted . flipFlopQuotes DoubleQuote
-  inNote                = B.note . B.para .
-                            addTextCase Nothing CapitalizeFirst
+  inNote                = B.note . B.para
   movePunctuationInsideQuotes
                         = punctuationInsideQuotes
   mapText f             = walk go
diff --git a/src/Citeproc/Types.hs b/src/Citeproc/Types.hs
--- a/src/Citeproc/Types.hs
+++ b/src/Citeproc/Types.hs
@@ -1654,7 +1654,7 @@
                     -- each a pair consisting of the item identifier and
                     -- the formatted entry
   , resultWarnings      :: [Text]       -- ^ Warnings from citation processing
-  } deriving (Show)
+  } deriving (Show, Functor, Traversable, Foldable)
 
 instance ToJSON a => ToJSON (Result a) where
   toJSON res = object
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -319,7 +319,7 @@
                (length (skipped counts))
   case length (failed counts) + length (errored counts) of
     0 -> exitWith ExitSuccess
-    n | n <= 58 -> do
+    n | n <= 63 -> do
          putStrLn "We have passed all the CSL tests we expect to..."
          exitWith ExitSuccess
       | otherwise -> exitWith $ ExitFailure n
diff --git a/test/extra/issue22.txt b/test/extra/issue22.txt
new file mode 100644
--- /dev/null
+++ b/test/extra/issue22.txt
@@ -0,0 +1,540 @@
+>>===== MODE =====>>
+citation
+<<===== MODE =====<<
+
+>>===== RESULT =====>>
+<sup>1</sup>
+<<===== RESULT =====<<
+
+>>===== CSL =====>>
+<?xml version="1.0" encoding="utf-8"?>
+<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" page-range-format="minimal">
+  <info>
+    <title>Vancouver (superscript)</title>
+    <id>http://www.zotero.org/styles/vancouver-superscript</id>
+    <link href="http://www.zotero.org/styles/vancouver-superscript" rel="self"/>
+    <link href="http://www.nlm.nih.gov/bsd/uniform_requirements.html" rel="documentation"/>
+    <author>
+      <name>Michael Berkowitz</name>
+      <email>mberkowi@gmu.edu</email>
+    </author>
+    <contributor>
+      <name>Sean Takats</name>
+      <email>stakats@gmu.edu</email>
+    </contributor>
+    <contributor>
+      <name>Sebastian Karcher</name>
+    </contributor>
+    <category citation-format="numeric"/>
+    <category field="medicine"/>
+    <summary>Vancouver style as outlined by International Committee of Medical Journal Editors Uniform Requirements for Manuscripts Submitted to Biomedical Journals: Sample References</summary>
+    <updated>2012-09-27T22:06:38+00:00</updated>
+    <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
+  </info>
+  <locale xml:lang="en">
+    <date form="text" delimiter=" ">
+      <date-part name="year"/>
+      <date-part name="month" form="short" strip-periods="true"/>
+      <date-part name="day"/>
+    </date>
+    <terms>
+      <term name="collection-editor" form="long">
+        <single>editor</single>
+        <multiple>editors</multiple>
+      </term>
+      <term name="presented at">presented at</term>
+      <term name="available at">available from</term>
+      <term name="section" form="short">sect.</term>
+    </terms>
+  </locale>
+  <locale xml:lang="fr">
+    <date form="text" delimiter=" ">
+      <date-part name="day"/>
+      <date-part name="month" form="short" strip-periods="true"/>
+      <date-part name="year"/>
+    </date>
+  </locale>
+  <macro name="author">
+    <names variable="author">
+      <name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
+      <label form="long" prefix=", "/>
+      <substitute>
+        <names variable="editor"/>
+      </substitute>
+    </names>
+  </macro>
+  <macro name="editor">
+    <names variable="editor" suffix=".">
+      <name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
+      <label form="long" prefix=", "/>
+    </names>
+  </macro>
+  <macro name="chapter-marker">
+    <choose>
+      <if type="chapter paper-conference entry-dictionary entry-encyclopedia" match="any">
+        <text term="in" text-case="capitalize-first"/>
+      </if>
+    </choose>
+  </macro>
+  <macro name="publisher">
+    <choose>
+      <!--discard publisher info for articles-->
+      <if type="article-journal article-magazine article-newspaper" match="none">
+        <group delimiter=": " suffix=";">
+          <choose>
+            <if type="thesis">
+              <text variable="publisher-place" prefix="[" suffix="]"/>
+            </if>
+            <else-if type="speech"/>
+            <else>
+              <text variable="publisher-place"/>
+            </else>
+          </choose>
+          <text variable="publisher"/>
+        </group>
+      </if>
+    </choose>
+  </macro>
+  <macro name="access">
+    <choose>
+      <if variable="URL">
+        <group delimiter=": ">
+          <text term="available at" text-case="capitalize-first"/>
+          <text variable="URL"/>
+        </group>
+      </if>
+    </choose>
+  </macro>
+  <macro name="accessed-date">
+    <choose>
+      <if variable="URL">
+        <group prefix="[" suffix="]" delimiter=" ">
+          <text term="cited" text-case="lowercase"/>
+          <date variable="accessed" form="text"/>
+        </group>
+      </if>
+    </choose>
+  </macro>
+  <macro name="container-title">
+    <choose>
+      <if type="article-journal article-magazine chapter paper-conference article-newspaper review review-book entry-dictionary entry-encyclopedia" match="any">
+        <group suffix="." delimiter=" ">
+          <choose>
+            <if type="article-journal review review-book" match="any">
+              <text variable="container-title" form="short" strip-periods="true"/>
+            </if>
+            <else>
+              <text variable="container-title" strip-periods="true"/>
+            </else>
+          </choose>
+          <choose>
+            <if variable="URL">
+              <text term="internet" prefix="[" suffix="]" text-case="capitalize-first"/>
+            </if>
+          </choose>
+        </group>
+        <text macro="edition" prefix=" "/>
+      </if>
+      <!--add event-name and event-place once they become available-->
+      <else-if type="bill legislation" match="any">
+        <group delimiter=", ">
+          <group delimiter=". ">
+            <text variable="container-title"/>
+            <group delimiter=" ">
+              <text term="section" form="short" text-case="capitalize-first"/>
+              <text variable="section"/>
+            </group>
+          </group>
+          <text variable="number"/>
+        </group>
+      </else-if>
+      <else-if type="speech">
+        <group delimiter=": " suffix=";">
+          <group delimiter=" ">
+            <text variable="genre" text-case="capitalize-first"/>
+            <text term="presented at"/>
+          </group>
+          <text variable="event"/>
+        </group>
+      </else-if>
+      <else>
+        <group delimiter=", " suffix=".">
+          <choose>
+            <if variable="collection-title" match="none">
+              <group delimiter=" ">
+                <label variable="volume" form="short" text-case="capitalize-first"/>
+                <text variable="volume"/>
+              </group>
+            </if>
+          </choose>
+          <text variable="container-title"/>
+        </group>
+      </else>
+    </choose>
+  </macro>
+  <macro name="title">
+    <text variable="title"/>
+    <choose>
+      <if type="article-journal article-magazine chapter paper-conference article-newspaper review review-book entry-dictionary entry-encyclopedia" match="none">
+        <choose>
+          <if variable="URL">
+            <text term="internet" prefix=" [" suffix="]" text-case="capitalize-first"/>
+          </if>
+        </choose>
+        <text macro="edition" prefix=". "/>
+      </if>
+    </choose>
+    <choose>
+      <if type="thesis">
+        <text variable="genre" prefix=" [" suffix="]"/>
+      </if>
+    </choose>
+  </macro>
+  <macro name="edition">
+    <choose>
+      <if is-numeric="edition">
+        <group delimiter=" ">
+          <number variable="edition" form="ordinal"/>
+          <text term="edition" form="short"/>
+        </group>
+      </if>
+      <else>
+        <text variable="edition" suffix="."/>
+      </else>
+    </choose>
+  </macro>
+  <macro name="date">
+    <choose>
+      <if type="article-journal article-magazine article-newspaper review review-book" match="any">
+        <group suffix=";" delimiter=" ">
+          <date variable="issued" form="text"/>
+          <text macro="accessed-date"/>
+        </group>
+      </if>
+      <else-if type="bill legislation" match="any">
+        <group delimiter=", ">
+          <date variable="issued" delimiter=" ">
+            <date-part name="month" form="short" strip-periods="true"/>
+            <date-part name="day"/>
+          </date>
+          <date variable="issued">
+            <date-part name="year"/>
+          </date>
+        </group>
+      </else-if>
+      <else-if type="report">
+        <date variable="issued" delimiter=" ">
+          <date-part name="year"/>
+          <date-part name="month" form="short" strip-periods="true"/>
+        </date>
+        <text macro="accessed-date" prefix=" "/>
+      </else-if>
+      <else-if type="patent">
+        <group suffix=".">
+          <group delimiter=", ">
+            <text variable="number"/>
+            <date variable="issued">
+              <date-part name="year"/>
+            </date>
+          </group>
+          <text macro="accessed-date" prefix=" "/>
+        </group>
+      </else-if>
+      <else-if type="speech">
+        <group delimiter="; ">
+          <group delimiter=" ">
+            <date variable="issued" delimiter=" ">
+              <date-part name="year"/>
+              <date-part name="month" form="short" strip-periods="true"/>
+              <date-part name="day"/>
+            </date>
+            <text macro="accessed-date"/>
+          </group>
+          <text variable="event-place"/>
+        </group>
+      </else-if>
+      <else>
+        <group suffix=".">
+          <date variable="issued">
+            <date-part name="year"/>
+          </date>
+          <text macro="accessed-date" prefix=" "/>
+        </group>
+      </else>
+    </choose>
+  </macro>
+  <macro name="pages">
+    <choose>
+      <if type="article-journal article-magazine article-newspaper review review-book" match="any">
+        <text variable="page" prefix=":"/>
+      </if>
+      <else-if type="book" match="any">
+        <text variable="number-of-pages" prefix=" "/>
+        <choose>
+          <if is-numeric="number-of-pages">
+            <label variable="number-of-pages" form="short" prefix=" " plural="never"/>
+          </if>
+        </choose>
+      </else-if>
+      <else>
+        <group prefix=" " delimiter=" ">
+          <label variable="page" form="short" plural="never"/>
+          <text variable="page"/>
+        </group>
+      </else>
+    </choose>
+  </macro>
+  <macro name="journal-location">
+    <choose>
+      <if type="article-journal article-magazine review review-book" match="any">
+        <text variable="volume"/>
+        <text variable="issue" prefix="(" suffix=")"/>
+      </if>
+    </choose>
+  </macro>
+  <macro name="collection-details">
+    <choose>
+      <if type="article-journal article-magazine article-newspaper review review-book" match="none">
+        <choose>
+          <if variable="collection-title">
+            <group delimiter=" " prefix="(" suffix=")">
+              <names variable="collection-editor" suffix=".">
+                <name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
+                <label form="long" prefix=", "/>
+              </names>
+              <group delimiter="; ">
+                <text variable="collection-title"/>
+                <group delimiter=" ">
+                  <label variable="volume" form="short"/>
+                  <text variable="volume"/>
+                </group>
+              </group>
+            </group>
+          </if>
+        </choose>
+      </if>
+    </choose>
+  </macro>
+  <macro name="report-details">
+    <choose>
+      <if type="report">
+        <text variable="number" prefix="Report No.: "/>
+      </if>
+    </choose>
+  </macro>
+  <citation collapse="citation-number">
+    <sort>
+      <key variable="citation-number"/>
+    </sort>
+    <layout delimiter="," vertical-align="sup">
+      <text variable="citation-number"/>
+    </layout>
+  </citation>
+  <bibliography et-al-min="7" et-al-use-first="6" second-field-align="flush">
+    <layout>
+      <text variable="citation-number" suffix=". "/>
+      <group delimiter=". " suffix=". ">
+        <text macro="author"/>
+        <text macro="title"/>
+      </group>
+      <group delimiter=" " suffix=". ">
+        <group delimiter=": ">
+          <text macro="chapter-marker"/>
+          <group delimiter=" ">
+            <text macro="editor"/>
+            <text macro="container-title"/>
+          </group>
+        </group>
+        <text macro="publisher"/>
+        <group>
+          <text macro="date"/>
+          <text macro="journal-location"/>
+          <text macro="pages"/>
+        </group>
+      </group>
+      <text macro="collection-details" suffix=". "/>
+      <text macro="report-details" suffix=". "/>
+      <text macro="access"/>
+    </layout>
+  </bibliography>
+</style>
+<<===== CSL =====<<
+
+>>===== INPUT =====>>
+[
+  {
+    "URL": "https://global.ihs.com/doc_detail.cfm?&rid=TIA&item_s_key=00125234&item_key_date=870024&input_doc_number=232&input_doc_title=&org_code=TIA",
+    "author": [
+      {
+        "literal": "Telecommunications Industry Association"
+      }
+    ],
+    "edition": "Revision F",
+    "id": "tia232",
+    "issued": {
+      "date-parts": [
+        [
+          1997,
+          10
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "54",
+    "publisher": "Telecommunications Industry Association",
+    "title": "TIA-232 Interface Between Data Terminal Equipment and Data Circuit- Terminating Equipment Employing Serial Binary Data Interchange",
+    "title-short": "TIA-232-F",
+    "type": "book"
+  },
+  {
+    "URL": "https://www.iso.org/obp/ui/#iso:std:iso-iec:11172:-1:ed-1:v1:en",
+    "author": [
+      {
+        "literal": "ISO/IEC Joint Technical Committee 1"
+      }
+    ],
+    "id": "iso/iec11172-1",
+    "issued": {
+      "date-parts": [
+        [
+          1993,
+          8
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "6",
+    "publisher": "International Organization for Standardization",
+    "title": "ISO/IEC 11172-1 Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 1: Systems",
+    "title-short": "ISO/IEC 11172-1:1993(E)",
+    "type": "book"
+  },
+  {
+    "URL": "https://www.iso.org/obp/ui/#iso:std:iso-iec:11172:-2:ed-1:v1:en",
+    "author": [
+      {
+        "literal": "ISO/IEC Joint Technical Committee 1"
+      }
+    ],
+    "id": "iso/iec11172-2",
+    "issued": {
+      "date-parts": [
+        [
+          1993,
+          8
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "112",
+    "publisher": "International Organization for Standardization",
+    "title": "ISO/IEC 11172-2 Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 2: Video",
+    "title-short": "ISO/IEC 11172-2:1993(E)",
+    "type": "book"
+  },
+  {
+    "URL": "https://www.iso.org/obp/ui/#iso:std:iso-iec:11172:-3:ed-1:v1:en",
+    "author": [
+      {
+        "literal": "ISO/IEC Joint Technical Committee 1"
+      }
+    ],
+    "id": "iso/iec11172-3",
+    "issued": {
+      "date-parts": [
+        [
+          1993,
+          8
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "150",
+    "publisher": "International Organization for Standardization",
+    "title": "ISO/IEC 11172-3 Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 3: Audio",
+    "title-short": "ISO/IEC 11172-3:1993(E)",
+    "type": "book"
+  },
+  {
+    "URL": "https://www.iso.org/standard/75928.html",
+    "author": [
+      {
+        "literal": "ISO/IEC Joint Technical Committee 1"
+      }
+    ],
+    "edition": "7",
+    "id": "iso/iec13818-1",
+    "issued": {
+      "date-parts": [
+        [
+          2019,
+          7
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "288",
+    "publisher": "International Organization for Standardization",
+    "title": "ISO/IEC 13818-1 Information technology — Generic coding of moving pictures and associated audio information — Part 1: Systems",
+    "title-short": "ISO/IEC 13818-1:2019(E)",
+    "type": "book"
+  },
+  {
+    "URL": "https://gwg.nga.mil/misb/docs/standards/ST1602.1.pdf",
+    "author": [
+      {
+        "literal": "Motion Imagery Standards Board"
+      }
+    ],
+    "edition": "1",
+    "id": "misbst1602",
+    "issued": {
+      "date-parts": [
+        [
+          2018,
+          11
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "19",
+    "publisher": "Motion Imagery Standards Board",
+    "title": "MISB ST 1602 Composite Imaging Local Set",
+    "title-short": "MISB ST 1602",
+    "type": "book"
+  },
+  {
+    "URL": "https://www.gwg.nga.mil/misb/docs/standards/ST0603.5.pdf",
+    "author": [
+      {
+        "literal": "Motion Imagery Standards Board"
+      }
+    ],
+    "edition": "5",
+    "id": "msibst0603",
+    "issued": {
+      "date-parts": [
+        [
+          2017,
+          10
+        ]
+      ]
+    },
+    "language": "en",
+    "number-of-pages": "8",
+    "title": "MISB ST 0603 MISP Time System and Timestamps",
+    "title-short": "MISB ST 0603",
+    "type": "book"
+  }
+]
+<<===== INPUT =====<<
+
+
+>>===== CITATION-ITEMS =====>>
+[[{"id":"misbst1602"}]]
+<<===== CITATION-ITEMS =====<<
+
+>>===== VERSION =====>>
+1.0
+<<===== VERSION =====<<
+
