diff --git a/unicodedomino.sty b/unicodedomino.sty
index d8d95ba2c3a12458f3477e11420b7bcc4e562ed6..278c29baf9c74e96d900d08d2e7e03c8c242d187 100644
--- a/unicodedomino.sty
+++ b/unicodedomino.sty
@@ -28,7 +28,7 @@
 % makes all UTF-8 available in listings.
 
 \NeedsTeXFormat{LaTeX2e}%
-\ProvidesPackage{unicodedomino}[2018/08/05 1.3 Domino for unknown codepoints]%
+\ProvidesPackage{unicodedomino}[2018/08/05 1.4~ Domino for unknown codepoints]%
 \makeatletter%
 
 \ifx\numexpr\@undefined%
@@ -194,7 +194,7 @@
 % main handler
 \def\UTFviii@defined#1{%
  \ifx#1\relax%
-  \if\relax\expandafter\UTFviii@chkseq\string#1\empty\relax%
+  \if\relax\expandafter\UTFviii@checkseq\string#1\empty\relax%
    % unknown char
    \ifx\protect\@typeset@protect%
     % not protected
@@ -224,7 +224,7 @@
 }%
 
 % input validation, including security-relevant checks
-\def\UTFviii@chkseq#1:#2#3\empty{%
+\def\UTFviii@checkseq#1:#2#3\empty{%
  \ifnum`#2<"80 %
   \ifx\empty#3\empty%
   \else%
@@ -236,27 +236,27 @@
   \else%
    \ifnum`#2<"E0 %
     % one 80-BF
-    \UTFviii@chksq@onetrail#3\empty%
+    \UTFviii@check@one#3\empty%
    \else%
     \ifnum`#2<"E1 %
      % A0-BF + one 80-BF
-     \UTFviii@chksq@a@trail#3\empty%
+     \UTFviii@check@two"A0.#3\empty%
     \else%
      \ifnum`#2<"F0 %
       % two 80-BF
-      \UTFviii@chksq@twotrail#3\empty%
+      \UTFviii@check@two"80.#3\empty%
      \else%
       \ifnum`#2<"F1 %
        % 90-BF + two 80-BF
-       \UTFviii@chksq@ninetytrails#3\empty%
+       \UTFviii@check@three"90."BF.#3\empty%
       \else%
        \ifnum`#2<"F4 %
         % three 80-BF
-        \UTFviii@chksq@threetrail#3\empty%
+        \UTFviii@check@three"80."BF.#3\empty%
        \else%
         \ifnum`#2<"F5 %
          % 80-8F + two 80-BF
-         \UTFviii@chksq@belowninetytrails#3\empty%
+         \UTFviii@check@three"80."8F.#3\empty%
         \else%
          1%
         \fi%
@@ -268,13 +268,12 @@
   \fi%
  \fi%
 }%
-\def\UTFviii@chksq@onetrail#1#2\empty{%
+\def\UTFviii@check@one#1#2\empty{%
  \ifx\empty#2\empty%
   \ifnum`#1<"80 %
    1%
   \else%
-   \ifnum`#1<"C0 %
-   \else%
+   \ifnum`#1>"BF %
     1%
    \fi%
   \fi%
@@ -282,77 +281,32 @@
   1%
  \fi%
 }%
-\def\UTFviii@chksq@a@trail#1#2\empty{%
- \ifx\empty#2\empty%
+\def\UTFviii@check@two#1.#2#3\empty{%
+ \ifx\empty#3\empty%
   1%
  \else%
-  \ifnum`#1<"A0 %
+  \ifnum`#2<#1 %
    1%
   \else%
-   \ifnum`#1<"C0 %
-    \UTFviii@chksq@onetrail#2\empty%
-   \else%
+   \ifnum`#2>"BF %
     1%
-   \fi%
-  \fi%
- \fi%
-}%
-\def\UTFviii@chksq@twotrail#1#2\empty{%
- \ifx\empty#2\empty%
-  1%
- \else%
-  \ifnum`#1<"80 %
-   1%
-  \else%
-   \ifnum`#1<"C0 %
-    \UTFviii@chksq@onetrail#2\empty%
    \else%
-    1%
+    \UTFviii@check@one#3\empty%
    \fi%
   \fi%
  \fi%
 }%
-\def\UTFviii@chksq@ninetytrails#1#2\empty{%
- \ifx\empty#2\empty%
+\def\UTFviii@check@three#1.#2.#3#4\empty{%
+ \ifx\empty#4\empty%
   1%
  \else%
-  \ifnum`#1<"90 %
+  \ifnum`#3<#1 %
    1%
   \else%
-   \ifnum`#1<"C0 %
-    \UTFviii@chksq@twotrail#2\empty%
-   \else%
+   \ifnum`#3>#2 %
     1%
-   \fi%
-  \fi%
- \fi%
-}%
-\def\UTFviii@chksq@threetrail#1#2\empty{%
- \ifx\empty#2\empty%
-  1%
- \else%
-  \ifnum`#1<"80 %
-   1%
-  \else%
-   \ifnum`#1<"C0 %
-    \UTFviii@chksq@twotrail#2\empty%
    \else%
-    1%
-   \fi%
-  \fi%
- \fi%
-}%
-\def\UTFviii@chksq@belowninetytrails#1#2\empty{%
- \ifx\empty#2\empty%
-  1%
- \else%
-  \ifnum`#1<"80 %
-   1%
-  \else%
-   \ifnum`#1<"90 %
-    \UTFviii@chksq@twotrail#2\empty%
-   \else%
-    1%
+    \UTFviii@check@two"80.#4\empty%
    \fi%
   \fi%
  \fi%