diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -46,3 +46,8 @@
 * Sixth version. Added new properties lines of "C", "N", "W", "X", "Y", "Z" and updated some previous ones to
 use the possibilities of the weighted improtance of lines (just some experimental functions at the moment).
 Changed the dependency boundaries of phonetic-languages-rhythmicity.
+
+## 0.7.0.0 -- 2021-08-16
+
+* Seventh version. Some code improvements. Added also the properties with weighted functions that try to increase
+the importance of the line ending and to decrease the importance of the beginnings.
diff --git a/Phonetic/Languages/Array/Ukrainian/PropertiesSyllablesG2.hs b/Phonetic/Languages/Array/Ukrainian/PropertiesSyllablesG2.hs
--- a/Phonetic/Languages/Array/Ukrainian/PropertiesSyllablesG2.hs
+++ b/Phonetic/Languages/Array/Ukrainian/PropertiesSyllablesG2.hs
@@ -64,7 +64,7 @@
 import Languages.Rhythmicity.Factor
 import Languages.Phonetic.Ukrainian.Syllable.Double.Arr
 import Languages.Phonetic.Ukrainian.Syllable.Arr
-import Data.Maybe (isNothing,fromMaybe)
+import Data.Maybe (isNothing,fromMaybe,fromJust)
 import Text.Read (readMaybe)
 import Rhythmicity.TwoFourth
 import Rhythmicity.PolyRhythm
@@ -197,40 +197,26 @@
 --------------------------------------------------------
 
 rhythmicity :: Double -> String -> Coeffs2 -> String -> Double
-rhythmicity k choice CF0 =
- case take 1 choice of
-  "C" -> let just_probe = readRhythmicity choice in
-           case just_probe of
-             Just (P1 ch rh 1) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD . createSyllablesUkrS
-             Just (P1 ch rh 2) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD2 . createSyllablesUkrS
-             Just (P1 ch rh 3) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD3 . createSyllablesUkrS
-             Just (P1 ch rh 4) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD4 . createSyllablesUkrS
-             Just (P2 ch rh r 1) -> rhythmicityPolyWeightedF2 1.0 r ch rh . mconcat . syllableDurationsD . createSyllablesUkrS
-             Just (P2 ch rh r 2) -> rhythmicityPolyWeightedF2 1.0 r ch rh . mconcat . syllableDurationsD2 . createSyllablesUkrS
-             Just (P2 ch rh r 3) -> rhythmicityPolyWeightedF2 1.0 r ch rh . mconcat . syllableDurationsD3 . createSyllablesUkrS
-             Just (P2 ch rh r 4) -> rhythmicityPolyWeightedF2 1.0 r ch rh . mconcat . syllableDurationsD4 . createSyllablesUkrS
-             _ -> rhythmicity04
-  "N" -> let just_probe = readRhythmicity choice in
+rhythmicity k choice CF0 = if
+ | take 1 choice `elem` ["c","B","C","M","N"] -> let just_probe = readRhythmicity choice in
            case just_probe of
-             Just (P1 ch rh 1) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD . createSyllablesUkrS
-             Just (P1 ch rh 2) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD2 . createSyllablesUkrS
-             Just (P1 ch rh 3) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD3 . createSyllablesUkrS
-             Just (P1 ch rh 4) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD4 . createSyllablesUkrS
-             Just (P2 ch rh r 1) -> rhythmicityPolyWeightedF3 1.0 r ch rh . mconcat . syllableDurationsD . createSyllablesUkrS
-             Just (P2 ch rh r 2) -> rhythmicityPolyWeightedF3 1.0 r ch rh . mconcat . syllableDurationsD2 . createSyllablesUkrS
-             Just (P2 ch rh r 3) -> rhythmicityPolyWeightedF3 1.0 r ch rh . mconcat . syllableDurationsD3 . createSyllablesUkrS
-             Just (P2 ch rh r 4) -> rhythmicityPolyWeightedF3 1.0 r ch rh . mconcat . syllableDurationsD4 . createSyllablesUkrS
+             Just (P1 ch rh n) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . (helperF4 n) . createSyllablesUkrS
+             Just (P2 ch rh r n) -> case take 1 choice of
+                   "B" -> rhythmicityPolyWeightedEF2 1.0 r ch rh . mconcat . (helperF4 n) . createSyllablesUkrS
+                   "C" -> rhythmicityPolyWeightedF2 1.0 r ch rh . mconcat . (helperF4 n) . createSyllablesUkrS
+                   "M" -> rhythmicityPolyWeightedEF3 1.0 r ch rh . mconcat . (helperF4 n) . createSyllablesUkrS
+                   "N" -> rhythmicityPolyWeightedF3 1.0 r ch rh . mconcat . (helperF4 n) . createSyllablesUkrS
+                   "c" -> rhythmicityPoly 1.0 r ch rh . mconcat . (helperF4 n) . createSyllablesUkrS
              _ -> rhythmicity04
-  "0" -> case choice of
-          "0y" -> rhythmicity0
-          "02y" -> rhythmicity02
-          "03y" -> rhythmicity03
-          "0z" -> rhythmicity0F k
-          "02z" -> rhythmicity02F k
-          "03z" -> rhythmicity03F k
-          "04z" -> rhythmicity04F k
-          _ -> rhythmicity04
-  "w" -> if
+ | choice == "0y" -> rhythmicity0
+ | choice == "02y" -> rhythmicity02
+ | choice == "03y" -> rhythmicity03
+ | choice == "0z" -> rhythmicity0F k
+ | choice == "02z" -> rhythmicity02F k
+ | choice == "03z" -> rhythmicity03F k
+ | choice == "04z" -> rhythmicity04F k
+ | take 1 choice == "0" -> rhythmicity04
+ | take 1 choice == "w" -> if
           | (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->
              case take 2 choice of
               "w0" -> wwF (drop 2 . take 3 $ choice) (Ch 1 1 4) (Rhythm 1 1 2)
@@ -239,16 +225,7 @@
               "w3" -> wwF (drop 2 . take 3 $ choice) (Ch 0 0 4) (Rhythm 1 1 2)
               _ -> rhythmicity04
           | otherwise -> rhythmicity04
-              where w1F f ch rh = rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . f . createSyllablesUkrS
-                    wwF xs = let (Just n) = readMaybe xs::Maybe Int in
-                      case n `rem` 4 of
-                       1 -> w1F syllableDurationsD
-                       2 -> w1F syllableDurationsD2
-                       3 -> w1F syllableDurationsD3
-                       _ -> w1F syllableDurationsD4
-                    {-# INLINE w1F #-}
-                    {-# INLINE wwF #-}
-  "x" -> if
+ | take 1 choice == "x" -> if
           | (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->
              case take 2 choice of
               "x0" -> xxF (drop 2 . take 3 $ choice) (Ch 1 1 4) (Rhythm 1 1 2)
@@ -257,29 +234,17 @@
               "x3" -> xxF (drop 2 . take 3 $ choice) (Ch 0 0 4) (Rhythm 1 1 2)
               _ -> rhythmicity04
           | otherwise -> rhythmicity04
-              where x1F f ch rh = rhythmicityABC0 1.0 2.0 0.125 ch rh . mconcat . f . createSyllablesUkrS
-                    xxF xs = let (Just n) = readMaybe xs::Maybe Int in
-                      case n `rem` 4 of
-                       1 -> x1F syllableDurationsD
-                       2 -> x1F syllableDurationsD2
-                       3 -> x1F syllableDurationsD3
-                       _ -> x1F syllableDurationsD4
-                    {-# INLINE x1F #-}
-                    {-# INLINE xxF #-}
-  "c" -> let just_probe = readRhythmicity choice in
-           case just_probe of
-             Just (P1 ch rh 1) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD . createSyllablesUkrS
-             Just (P1 ch rh 2) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD2 . createSyllablesUkrS
-             Just (P1 ch rh 3) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD3 . createSyllablesUkrS
-             Just (P1 ch rh 4) -> rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . syllableDurationsD4 . createSyllablesUkrS
-             Just (P2 ch rh r 1) -> rhythmicityPoly 1.0 r ch rh . mconcat . syllableDurationsD . createSyllablesUkrS
-             Just (P2 ch rh r 2) -> rhythmicityPoly 1.0 r ch rh . mconcat . syllableDurationsD2 . createSyllablesUkrS
-             Just (P2 ch rh r 3) -> rhythmicityPoly 1.0 r ch rh . mconcat . syllableDurationsD3 . createSyllablesUkrS
-             Just (P2 ch rh r 4) -> rhythmicityPoly 1.0 r ch rh . mconcat . syllableDurationsD4 . createSyllablesUkrS
-             _ -> rhythmicity04
-  _ -> if
-    | (take 1 choice `elem` ["u","v","s","t","U","V","S","T","W","X","Y","Z"]) && (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->
+ | otherwise -> if
+    | ((take 1 choice >= "u" && take 1 choice <= "t") || (take 1 choice >= "I" && take 1 choice <= "Z")) && (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->
         case take 1 choice of
+          "I" -> g rhythmicityPolyWeightedEF3 5 1
+          "J" -> g rhythmicityPolyWeightedEF30 5 1
+          "K" -> g rhythmicityPolyWeightedEF3 6 2
+          "L" -> g rhythmicityPolyWeightedEF30 6 2
+          "O" -> g rhythmicityPolyWeightedEF2 5 1
+          "P" -> g rhythmicityPolyWeightedEF20 5 1
+          "Q" -> g rhythmicityPolyWeightedEF2 6 2
+          "R" -> g rhythmicityPolyWeightedEF20 6 2
           "W" -> g rhythmicityPolyWeightedF3 5 1
           "X" -> g rhythmicityPolyWeightedF30 5 1
           "Y" -> g rhythmicityPolyWeightedF3 6 2
@@ -305,6 +270,21 @@
                 | drop 1 choice `elem` ["61","62","63","64"] = h2 f (drop 2 . take 3 $ choice) [True,False,True] m n
                 | drop 1 choice `elem` ["71","72","73","74"] = h2 f (drop 2 . take 3 $ choice) [True,False,False] m n
                 | otherwise = rhythmicity04
+              w1F f ch rh = rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . f . createSyllablesUkrS
+              wwF2 g2 xs = let (Just n) = readMaybe xs::Maybe Int in
+                      case n `rem` 4 of
+                       1 -> g2 syllableDurationsD
+                       2 -> g2 syllableDurationsD2
+                       3 -> g2 syllableDurationsD3
+                       _ -> g2 syllableDurationsD4
+              x1F f ch rh = rhythmicityABC0 1.0 2.0 0.125 ch rh . mconcat . f . createSyllablesUkrS
+              xxF = wwF2 x1F
+              wwF = wwF2 w1F
+              {-# INLINE w1F #-}
+              {-# INLINE wwF2 #-}
+              {-# INLINE x1F #-}
+              {-# INLINE xxF #-}
+              {-# INLINE wwF #-}
 rhythmicity k choice (CF2 x y) =
  case take 1 choice of
   "0" -> case choice of
@@ -353,5 +333,17 @@
                     {-# INLINE x1F #-}
                     {-# INLINE xxF #-}
   _ -> if
-     | take 1 choice `elem` ["c","u","v","s","t","C","N","S","T","U","V","W","X","Y","Z"] -> rhythmicity k choice CF0
+     | ((take 1 choice >= "u" && take 1 choice <= "t") || (take 1 choice >= "I" && take 1 choice <= "Z")) || take 1 choice `elem` ["c","B","C"] -> rhythmicity k choice CF0
      | otherwise -> rhythmicityK4 (fromMaybe 1.0 x) (fromMaybe 1.0 y)
+
+helperF4 :: Int -> [[[UZPP2]]] -> [[Double]]
+helperF4 n
+ | n == 1 = syllableDurationsD
+ | n == 2 = syllableDurationsD2
+ | n == 3 = syllableDurationsD3
+ | otherwise = syllableDurationsD4
+
+parseChRhEndMaybe :: ParseChRh -> Maybe Int
+parseChRhEndMaybe (P0 _) = Nothing
+parseChRhEndMaybe (P1 _ _ n) = Just n
+parseChRhEndMaybe (P2 _ _ _ n) = Just n
diff --git a/phonetic-languages-simplified-properties-array.cabal b/phonetic-languages-simplified-properties-array.cabal
--- a/phonetic-languages-simplified-properties-array.cabal
+++ b/phonetic-languages-simplified-properties-array.cabal
@@ -2,7 +2,7 @@
 -- For further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                phonetic-languages-simplified-properties-array
-version:             0.6.0.0
+version:             0.7.0.0
 synopsis:            A generalization of the uniqueness-periods-vector-properties package.
 description:         Is a simplified version of the functionality of the former one. Uses lists and arrays as main processment data types. Uses Double whenever applicable.
 homepage:            https://hackage.haskell.org/package/phonetic-languages-simplified-properties-array
@@ -20,6 +20,6 @@
   exposed-modules:     Phonetic.Languages.Array.Ukrainian.PropertiesFuncRepG2, Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2
   -- other-modules:
   other-extensions:    BangPatterns, CPP, MultiWayIf
-  build-depends:       base >=4.8 && <4.15, phonetic-languages-rhythmicity >=0.7 && <1, phonetic-languages-simplified-base >=0.1 && <1, ukrainian-phonetics-basic-array >=0.1.2 && <1
+  build-depends:       base >=4.8 && <4.15, phonetic-languages-rhythmicity >=0.8 && <1, phonetic-languages-simplified-base >=0.1 && <1, ukrainian-phonetics-basic-array >=0.1.2 && <1
   -- hs-source-dirs:
   default-language:    Haskell2010
