diff --git a/cndict.cabal b/cndict.cabal
--- a/cndict.cabal
+++ b/cndict.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                cndict
-version:             0.7.8
+version:             0.8.0
 synopsis:            Chinese/Mandarin <-> English dictionary, Chinese lexer.
 -- description:
 license:             PublicDomain
diff --git a/src/Data/Chinese/CCDict.hs b/src/Data/Chinese/CCDict.hs
--- a/src/Data/Chinese/CCDict.hs
+++ b/src/Data/Chinese/CCDict.hs
@@ -7,6 +7,7 @@
   , Entry(..)
   , ppEntry
   , entryVariants
+  , entryOriginal
   , entrySimplified
   , entryTraditional
   , entryWordFrequency
@@ -129,7 +130,7 @@
 scrapeEntry dict nth key =
     case variants of
       [] -> Nothing
-      (v:vs) -> Just (Entry v vs)
+      (v:vs) -> Just (Entry key v vs)
   where
     variants = scrapeVariants dict nth key
 
@@ -189,7 +190,7 @@
 --  , entryDefinition  :: [[Text]]
 --  } deriving ( Read, Show, Eq, Ord )
 
-data Entry = Entry Variant [Variant]
+data Entry = Entry !Text Variant [Variant]
   deriving (Show, Read, Eq, Ord)
 data Variant = Variant
   { variantSimplified    :: !Text
@@ -199,11 +200,14 @@
   , variantDefinitions   :: [Text]
   } deriving ( Read, Show, Eq, Ord )
 
+entryOriginal :: Entry -> Text
+entryOriginal (Entry o _v _vs) = o
+
 entryVariants :: Entry -> [Variant]
-entryVariants (Entry v vs) = v:vs
+entryVariants (Entry _o v vs) = v:vs
 
 dominantVariant :: Entry -> Variant
-dominantVariant (Entry v vs) =
+dominantVariant (Entry _o v vs) =
     foldr dom v vs
   where
     dom v1 v2
diff --git a/src/Data/Chinese/Segmentation.hs b/src/Data/Chinese/Segmentation.hs
--- a/src/Data/Chinese/Segmentation.hs
+++ b/src/Data/Chinese/Segmentation.hs
@@ -2,6 +2,7 @@
 module Data.Chinese.Segmentation
   ( Token(..)
   , Entry(..)
+  , entryOriginal
   , entrySimplified
   , entryTraditional
   , entryPinyin
@@ -12,14 +13,16 @@
   , toSimplified
   ) where
 
-import Data.Chinese.CCDict (Entry(..), entrySimplified, entryTraditional, entryWordFrequency, entryPinyin)
+import           Control.Monad
+import           Data.Chinese.CCDict (Entry (..), entryOriginal, entryPinyin,
+                                      entrySimplified, entryTraditional,
+                                      entryWordFrequency)
 import qualified Data.Chinese.CCDict as CC
-import qualified Data.Text as T
-import Data.Text (Text)
-import Data.List
-import Data.Maybe
-import Control.Monad
-import Data.Ord
+import           Data.List
+import           Data.Maybe
+import           Data.Ord
+import           Data.Text           (Text)
+import qualified Data.Text           as T
 
 data Token = KnownWord Entry | UnknownWord Text
   deriving ( Read, Show, Eq, Ord )
