diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -33,3 +33,10 @@
 
 * Fourth version. Added a README.md file. Changed the behaviour of the uniqVec03 executable so that it is more accurate and gives more output information. 
 Added links to results of the processment for the Ukrainian poetic original and translated-into texts. 
+
+## 0.5.0.0 -- 2020-09-19
+
+* Fifth version. Added more information to the uniqVec03 output. Now it shows additionally the matrix of the words-per-line x number-of-the-interval in two different ways (the first one is 
+just a simple visualization in ASCII). Besides, it counts totals on the words-per-line and prints it, added the possibility to change the number of the intervals as the second 
+command line argument, and made some dependency changing related changes. Changed the dependency bounds for uniqueness-periods-vector-filters package. Added new dependency 
+of uniqueness-periods-vector-stats package. 
diff --git a/Proportion/Main.hs b/Proportion/Main.hs
--- a/Proportion/Main.hs
+++ b/Proportion/Main.hs
@@ -8,10 +8,34 @@
 -- Analyzes a poetic text in Ukrainian, for every line prints statistic data and 
 -- then for the whole poem prints the hypothesis evaluation information. Since the 0.4.0.0 version 
 -- the program tries to be more accurate in cases of the lines consisting entirely of the words 
--- which are unique in phonetic meaning alongside the line. 
+-- which are unique in phonetic meaning alongside the line. Another hypothesis is that the distribution 
+-- of the placement of the actual poetic text in Ukrainian is not one of the standard distributions. 
+-- It can probably have approximately a form of and is different for different authors:
+-- 
+-- >    --   --   --
+-- >   /  \_/  \_/  \
+-- 
+-- 
 
+{-# LANGUAGE CPP, BangPatterns #-}
+
 module Main where
 
+#ifdef __GLASGOW_HASKELL__
+#if __GLASGOW_HASKELL__>=710
+/* code that applies only to GHC 7.10.* and higher versions */
+import GHC.Base (mconcat)
+#endif
+#endif
+
+#ifdef __GLASGOW_HASKELL__
+#if __GLASGOW_HASKELL__==708
+/* code that applies only to GHC 7.8.* */
+mconcat = concat
+#endif
+#endif
+
+import Control.Exception (onException)
 import qualified Data.Vector as V
 import String.Languages.UniquenessPeriods.Vector
 import Languages.UniquenessPeriods.Vector.General.Debug
@@ -26,11 +50,13 @@
 import Languages.UniquenessPeriods.Vector.Filters
 import GHC.Float (int2Float)
 import Data.List (sort)
+import Numeric.Stats
 
 main :: IO ()
 main = do
   args <- getArgs
   let file = concat . take 1 $ args
+  gz <- onException (do {return (read (concat . take 1 . drop 1 $ args)::Int)}) (return 9)
   contents <- readFile file
   let flines = filter (not . null . filter isUkrainian) . prepareText $ contents
   data3 <- mapM (\ts -> do
@@ -40,27 +66,34 @@
               aux0 . convertToProperUkrainian) (justOneValue2Property . negate . diverse2) $ ts)
        data2 = (\k -> if k == 0 then 1 else k) . diverse2 . uniquenessPeriodsVector3 " 01-" . aux0 . convertToProperUkrainian $ ts 
    let ratio = if maxE == 1 then 0 else 2.0 * fromIntegral data2 / fromIntegral (minE + maxE)
-       intervalN = if maxE == 1 then 0 else intervalNRealFrac (int2Float minE) (int2Float maxE) 9 (int2Float data2)
-   putStrLn $ show (minE::Int) ++ "\t" ++ show (data2::Int) ++ "\t" ++ show (maxE::Int) ++ "\t" ++ 
-     showFFloat (Just 3) (fromIntegral data2 / fromIntegral minE) "\t" ++ showFFloat (Just 3) (fromIntegral maxE / fromIntegral data2) "\t" ++ 
-       showFFloat (Just 3) ratio "\t" ++ show (length . words $ ts) ++ "\t" ++ show intervalN
-   return (ratio,intervalN)) $ flines
-  let (data31,data32) = unzip data3 
+       intervalN = if maxE == 1 then 0 else intervalNRealFrac (int2Float minE) (int2Float maxE) gz (int2Float data2)
+       wordsN = if maxE == 1 then 0 else length . words $ ts
+   putStrLn $ mconcat [show (minE::Int), "\t", show (data2::Int), "\t", show (maxE::Int), "\t", 
+     showFFloat (Just 4) (fromIntegral data2 / fromIntegral minE) "\t", showFFloat (Just 4) (fromIntegral maxE / fromIntegral data2) "\t", 
+       showFFloat (Just 4) ratio "\t", show wordsN, "\t", show intervalN]
+   return (ratio,(wordsN,intervalN))) $ flines
+  let (data31,wordsCnt0_data32) = unzip data3 
       data4 = filter (/= 0) data31
-  if null data4 then putStrLn "-----------------------------------------------------------------------------------------------------" >> putStrLn "1.000+-0.000\t0" >> 
-    putStrLn "=====================================================================================================" -- Well, this means that all the text consists of the unique (in phonetic meaning) words alongside every line. A rather rare occurrence.
+  if null data4 then putStrLn (replicate 102 '-') >> putStrLn "1.000+-0.000\tALL!" >> putStrLn (replicate 102 '=') -- Well, this means that all the text consists of the unique (in phonetic meaning) words alongside every line. A rather rare occurrence.
   else do 
-    let mean1 = sum data4 / fromIntegral (length data4)
-        intervals = sort . filter (/= 0) $ data32
-        zeroes = length . filter (== 0) $ data31
+    let (mean1,disp) = meanWithDispF data4
+        pairs = sort . filter ((/= 0) . snd) $ wordsCnt0_data32
         f xs n = show . length . takeWhile (== n) . dropWhile (/= n) $ xs
-    putStrLn "-----------------------------------------------------------------------------------------------------"
-    mapM_ (\r -> putStr $ show r ++ "\t") [1..9] >> putStrLn ""
-    mapM_ (\r ->  putStr $ f intervals r ++ "\t") [1..9] >> putStrLn ""
-    putStrLn $ showFFloat (Just 3) mean1 "+-" ++ showFFloat (Just 3) (sqrt ((sum (map (**2) data4) / fromIntegral (length data4)) - mean1 ** 2)) "\t" ++ show zeroes
-    putStrLn "====================================================================================================="
+        g m n = length . takeWhile (\(_,v) -> v == n) . dropWhile (\(_,v) -> v /= n) . takeWhile (\(u,_) -> u == m) . dropWhile (\(u,_) -> u /= m) $ pairs
+    putStrLn (replicate 102 '-')
+    mapM_ (\r -> putStr $ show r ++ "\t") [1..gz] >> putStrLn ""
+    mapM_ (\r ->  putStr $ f (sort . map snd $ pairs) r ++ "\t") [1..gz] >> putStrLn ""
+    putStrLn $ showFFloat (Just 4) mean1 "+-" ++ showFFloat (Just 4) (sqrt disp) "\t" ++ show (length . filter (== 0) $ data31) ++ "\t" ++ show (length data3)
+    mapM_ (\r -> putStr $ show r ++ "\t") [2..8] >> putStrLn ""
+    mapM_ (\r ->  putStr $ f (map fst $ pairs) r ++ "\t") [2..8] >> putStrLn ""
+    putStrLn (replicate 102 '*')
+    mapM_ (\m1 -> mapM_ (\n1 ->  putStr $  (if g m1 n1 == 0 then "." else show (g m1 n1)) ++ "\t") [1..gz] >> putStrLn "") [2..8]
+    putStrLn (replicate 102 '~')
+    mapM_ (\m1 -> mapM_ (\n1 ->  putStr $  show (g m1 n1) ++ "\t") [1..gz] >> putStrLn "") [2..8]
+    putStrLn (replicate 102 '=')
   
 isUkrainian :: Char -> Bool
 isUkrainian x
  | x == '\x0404' || (x >= '\x0406' && x <= '\x0407') || (x >= '\x0410' && x <= '\x0429') || x == '\x042C' || (x >= '\x042E' && x <= '\x0449') || x == '\x044C' || (x >= '\x044E' && x <= '\x044F') || x == '\x0454' || (x >= '\x0456' && x <= '\x0457') = True
  | otherwise = False
+
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+The real samples output files created by uniqVec03 package can be found in the archives on the following pages. 
+
 These files are created by the uniqVec03 executable after Lynx dumping the web pages from the links on the following pages: 
 
 TarasShevchenko -- http://poetyka.uazone.net/kobzar/zmist.html
@@ -8,8 +10,10 @@
 LinaKostenko -- http://poetyka.uazone.net/kostenko/
 WilliamShakespeare -- http://poetyka.uazone.net/shakespeare/ (the last one is translation of the original English versions into Ukrainian).
 
-The version of the uniqueness-periods-vector-examples used for them is 0.3.1.1
+-------------
 
+* The version of the uniqueness-periods-vector-examples used for them is 0.3.1.1
+
 The processment was done by Oleksandr Zhabenko, the author of the packages from uniqueness-periods-vector series. 
 
 The zip archive can be downloaded from the link:
@@ -20,3 +24,12 @@
 
 https://github.com/OleksandrZhabenko/uniqueness-periods-vector-examples/blob/master/0.3.1.1.zip
 
+-------------
+
+* For the uniqueness-periods-vector-examples of 0.4.0.0 version:
+
+http://web.archive.org/web/20200919093558/https://raw.githubusercontent.com/OleksandrZhabenko/uniqueness-periods-vector-examples/master/0.4.0.0.zip
+
+and from GitHub page:
+
+https://github.com/OleksandrZhabenko/uniqueness-periods-vector-examples/blob/master/0.4.0.0.zip
diff --git a/uniqueness-periods-vector-examples.cabal b/uniqueness-periods-vector-examples.cabal
--- a/uniqueness-periods-vector-examples.cabal
+++ b/uniqueness-periods-vector-examples.cabal
@@ -3,7 +3,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                uniqueness-periods-vector-examples
-version:             0.4.0.0
+version:             0.5.0.0
 synopsis:            Examples of usage for the uniqueness-periods-vector series of packages
 description:         Examples of usage for the uniqueness-periods-vector series of packages. Several executables are planned to demonstrate the libraries work.
 homepage:            https://hackage.haskell.org/package/uniqueness-periods-vector-examples
@@ -36,7 +36,7 @@
 executable uniqVec03
   main-is:             Main.hs
   -- other-modules:
-  -- other-extensions:
-  build-depends:       base >=4.7 && <4.15, mmsyn6ukr >=0.8 && <1, vector >=0.11 && <0.14, uniqueness-periods-vector >=0.3 && <1, uniqueness-periods-vector-general >=0.4.2 && < 1, uniqueness-periods-vector-common >=0.3 && <1, uniqueness-periods-vector-properties >=0.3.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.2 && <1, uniqueness-periods-vector-filters >=0.1.1 && <1
+  other-extensions:    CPP, BangPatterns
+  build-depends:       base >=4.7 && <4.15, mmsyn6ukr >=0.8 && <1, vector >=0.11 && <0.14, uniqueness-periods-vector >=0.3 && <1, uniqueness-periods-vector-general >=0.4.2 && < 1, uniqueness-periods-vector-common >=0.3 && <1, uniqueness-periods-vector-properties >=0.3.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.2 && <1, uniqueness-periods-vector-filters >=0.2 && <1, uniqueness-periods-vector-stats >=0.1.1 && <1
   hs-source-dirs:      Proportion
   default-language:    Haskell2010
