diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -21,3 +21,9 @@
 
 * First version revised D. Added the possibility to avoid using the at-sign in the resulting visualization file. Added the possibility to choose 
 different splines schemes according to the GraphViz documentation.
+
+## 0.1.4.0 -- 2019-12-17
+
+* First version revised E. Added filtering for not to duplicate records in the 
+.gv file. Some minor documentation improvement.
+
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -12,6 +12,7 @@
 
 module Main (main) where
 
+import Data.List (nub)
 import System.Info (os)
 import System.Directory
 import System.CPUTime (getCPUTime)
@@ -96,8 +97,8 @@
 processCellsA :: String -> [[String]]
 processCellsA = fillEmptyCells . cells
 
-processCellsZ :: [[String]] -> String
-processCellsZ = concatMap (dropDouble . dropLast . changeNthLine)
+processCellsZ :: [[String]] -> [String]
+processCellsZ = map (dropDouble . dropLast . changeNthLine)
 
 takeColumn :: Int -> [[String]] -> [String]
 takeColumn n xss | null xss = error "Empty list in takeColumn!"
@@ -133,10 +134,10 @@
             | otherwise = "\n"
 
 makeFilledWithColor :: [String] -> String
-makeFilledWithColor xss = concat (zipWith (++) xss  (repeat (" [style=filled, fillcolor=\"#ffffba\"];" ++ endOfLineGv)))
+makeFilledWithColor xss = concat (nub . zipWith (++) xss $ (repeat (" [style=filled, fillcolor=\"#ffffba\"];" ++ endOfLineGv)))
 
 processCells :: String -> String
-processCells = processCellsZ . fillEmptyCells2 . processCellsA
+processCells = concat . nub . processCellsZ . fillEmptyCells2 . processCellsA
 
 combineCells :: String -> String -> String
 combineCells x0 x = let ch = getBFst' ("true", V.fromList [("0", "false"), ("1", "true"), ("2", "ortho"), ("3", "polyline")]) x0 in let (y,z) = (x,x) in concat ["strict digraph 1 {", endOfLineGv, 
diff --git a/README b/README
--- a/README
+++ b/README
@@ -34,8 +34,13 @@
    to be saved. DO use alphanumeric symbols and dashes if
     needed. Then specify the needed splines and visualization 
      schemes by specifying the appropriate characters in the 
-       terminal. For more information, see the GraphViz 
-         documentation.
+       terminal. You will specify additionally whether you
+        would like to remove '@' sign from the resulting .gv
+         file and from the vizualization itself. Please, note 
+           that if entered 'y' the program automatically 
+            removes all the '@' from the .gv and visualization. 
+              For more information, see the GraphViz 
+                documentation.
 11. Your first visualization is then created. 
 12. Save the spreadsheet document as a spreadsheet file.
 13. Repeat the steps from 2 to 12 as needed to produce
diff --git a/mmsyn4.cabal b/mmsyn4.cabal
--- a/mmsyn4.cabal
+++ b/mmsyn4.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn4
-version:             0.1.3.0
+version:             0.1.4.0
 synopsis:            The "glue" between electronic tables and GraphViz
 description:         The program mmsyn4 converts a specially formated .csv file with a colon as a field separator obtained from the electronic table into a visualized by GraphViz graph.
 homepage:            https://hackage.haskell.org/package/mmsyn4
