diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+#####   1.1
+    API overhaul
+    
+    remove dep on regex-do 
+
 #####   1.0.3
     fix Eq, Ord TimeSpan: was derived. Implemented manually
     
diff --git a/hora.cabal b/hora.cabal
--- a/hora.cabal
+++ b/hora.cabal
@@ -1,5 +1,5 @@
 name:                hora
-version:             1.0.3
+version:             1.1
 build-type:          Simple
 cabal-version:       >=1.10
 
@@ -23,19 +23,16 @@
           Data.Time.Hora.Convert
           Data.Time.Hora.Future
           Data.Time.Hora.Timestamp
-          Data.Time.Hora.Type.YmdHms
-          Data.Time.Hora.Type.DmyHm
+          Data.Time.Hora.Type.DatePart
           Data.Time.Hora.Type.Time
           Data.Time.Hora.Parse
           Data.Time.Hora.Format
 
   other-modules:            
-          Data.Time.Hora.WithTimeZone
   ghc-options:  -fwarn-unused-imports  
     
   build-depends:       base >=4.7 && <5.0,
                        time,
-                       regex-do >= 3.1, 
                        binary
                        
   hs-source-dirs:      src
@@ -90,5 +87,4 @@
                   hspec >= 2.1.7,
                   QuickCheck >= 2.8.1,
                   time,
-                  regex-do >= 3.1,
                   binary                          
diff --git a/src/Data/Time/Hora/Convert.hs b/src/Data/Time/Hora/Convert.hs
--- a/src/Data/Time/Hora/Convert.hs
+++ b/src/Data/Time/Hora/Convert.hs
@@ -1,20 +1,24 @@
 module Data.Time.Hora.Convert 
-    (-- ** multipliers
-    picoSec,
-    picoMs,
-    msSec,
-    -- ** conversion
+    (-- ** 'TimeSpan'
     toPico,
     toMilli,
     toSec,
+    -- ** 'Pico' - 'TimeSpan' conversion
+    picoTimeSpan,
+    timeSpanPico,
     -- ** diff time
     toDiffTime,
-    nominalDiff        
+    nominalDiff,
+    -- ** multipliers
+    picoSec,
+    picoMs,
+    msSec        
     ) where
 
 import Data.Ratio
 import Data.Time.Clock
 import Data.Time.Hora.Type.Time
+import Data.Fixed
 
 
 -- | pico in 1 second
@@ -29,21 +33,22 @@
 msSec::Integral a => a
 msSec = 1000
 
-{- | >>> toPico (Milli 1) 
-    1000000000 -}
+{- | >>> toPico $ Milli 3
+3000000000  -}
 toPico::TwoInt a b => TimeSpan a -> b
 toPico (Pico i0) = fromIntegral i0
 toPico (Milli i0) = fromIntegral $ i0 * picoMs
 toPico (Sec i0) = fromIntegral $ i0 * picoSec
 
-{- | >>> toMilli (Sec 1)
-    1000    -}
+{- | >>> toMilli $ Sec 5
+5000   -}
 toMilli::TwoInt a b => TimeSpan a -> b
 toMilli (Pico i0) = fromIntegral $ i0 `div` picoMs
 toMilli (Milli i0) = fromIntegral $ i0
 toMilli (Sec i0) = fromIntegral $ i0 * msSec
 
-
+{- | >>> toSec $ Milli 781200
+781     -}
 toSec::TwoInt a b => TimeSpan a -> b
 toSec (Pico i0) = fromIntegral $ i0 `div` picoSec
 toSec (Milli i0) = fromIntegral $ i0 `div` msSec
@@ -60,3 +65,12 @@
 nominalDiff ts0 = let s1 = toPico ts0::Integer
                 in fromRational $ s1 % picoSec
 
+
+
+picoTimeSpan::Num a => Pico -> TimeSpan a
+picoTimeSpan (MkFixed p0) = Pico $ fromIntegral p0
+
+
+timeSpanPico::Integral a => TimeSpan a -> Pico 
+timeSpanPico ts0 = MkFixed $ fromIntegral p0
+        where p0 = toPico ts0  
diff --git a/src/Data/Time/Hora/Format.hs b/src/Data/Time/Hora/Format.hs
--- a/src/Data/Time/Hora/Format.hs
+++ b/src/Data/Time/Hora/Format.hs
@@ -2,82 +2,42 @@
 
 import Data.Time.Format (formatTime,defaultTimeLocale)
 import Data.Time.Clock
-import Data.Time.Hora.Type.DmyHm as M
 import Data.Time.LocalTime as L
-import qualified Text.Regex.Do.Replace.Template as F
-import qualified Text.Regex.Do.Pad as F
 import Data.Time.Calendar
 import Data.Time.Hora.Type.Time
+import Text.Printf
 
 
-{- | yyyymmdd      -}
-ymd::TimeZone -> UTCTime -> Tz String
-ymd tz0 utc0 =
+{- | yyyy-mm-dd   UTC   -}
+iso::UTCTime -> String
+iso t0 = showGregorian $ utctDay t0
+
+
+{- | yyyy-mm-dd local  -}
+iso'::TimeZone -> UTCTime -> Tz String
+iso' tz0 utc0 =
     let lt2 = L.utcToLocalTime tz0 utc0
         day2 = localDay lt2
         (y3,m3,d3) = toGregorian day2
-        f4 i4 = F.pad '0' 2 $ show i4
-    in Tz tz0 $ "{0}{1}{2}" F.< (f4 <$> [fromIntegral y3,m3,d3])
-    
+    in Tz tz0 $ printf "%04v-%02v-%02v" y3 m3 d3
 
-{- | format UTCTime just as you need it. uses 'defaultTimeLocale' 
 
-@
-import Text.Regex.Do.Replace.Template 
-import Prelude hiding ((\<),(\>))
-...
+{- | yyyymmdd   UTC   -}
+ymd::UTCTime -> String
+ymd utc0 = formatTime defaultTimeLocale "%Y%m%d" utc0 
 
-it "formatUTCTime" $ do
-    t1 <- getCurrentTime 
-    let p1@DmyHm{..} = partFormats
-    traceIO $ formatUTCTime (("{day}/{month} {hour}:{minute}") < 
-                    [("day",day),("month",month),("hour",hour),("minute",minute)])
-                    t1
 
-12/12 18:39                      
-@   -}
-formatUTCTime::String  -- ^ see 'formatTime'. can also make format with functions in this module 
+{- | yyyymmdd  local -}
+ymd'::TimeZone -> UTCTime -> Tz String
+ymd' tz0 utc0 =
+    let lt2 = L.utcToLocalTime tz0 utc0
+        day2 = localDay lt2
+        (y3,m3,d3) = toGregorian day2
+    in Tz tz0 $ printf "%04v%02v%02v" y3 m3 d3
+    
+
+formatUTCTime::String  -- ^ format. see 'formatTime' 
     -> UTCTime
         -> String
 formatUTCTime format0 = formatTime defaultTimeLocale format0
-
-
--- | %T%Q
-hmsFraction::String
-hmsFraction = "%T%Q"
-
--- | %T %Q
-hmsFraction'::String
-hmsFraction' = "%T %Q"
-
-
--- | %F %T
-ymdHms::String
-ymdHms = "%F %T"
-
-{- | %S.%-q     
-
-second.pico         -}
-spicoFormat::String
-spicoFormat = "%S.%-q"  
-
-
-
-{- | some formats  /no padding/ 
-
-    see 'formatTime' for full measure
-
-@
-day     %-d
-month   %-m
-year    %Y
-hour    %-H
-minute  %-M      @   -}
-partFormats::DmyHm String
-partFormats = DmyHm {
-    M.day = "%-d",
-    M.month = "%-m",
-    M.year = "%Y",
-    M.hour = "%-H",
-    M.minute = "%-M"
-    }
+        
diff --git a/src/Data/Time/Hora/Future.hs b/src/Data/Time/Hora/Future.hs
--- a/src/Data/Time/Hora/Future.hs
+++ b/src/Data/Time/Hora/Future.hs
@@ -43,4 +43,3 @@
 
 instance PicoDiff Pico where
     (-) (MkFixed t2) (MkFixed t1) = Pico $ t2 P.- t1
--- ^ e.g. Pico part in 'DmyHmp' 
diff --git a/src/Data/Time/Hora/Parse.hs b/src/Data/Time/Hora/Parse.hs
--- a/src/Data/Time/Hora/Parse.hs
+++ b/src/Data/Time/Hora/Parse.hs
@@ -1,47 +1,50 @@
 module Data.Time.Hora.Parse where
 
-import Data.Time.Hora.Type.DmyHm as M
+import Data.Time.Hora.Type.DatePart as M
 import Data.Time.Hora.Type.Time
 import Data.Time.Clock
 import Data.Time.Calendar
 import Data.Time.LocalTime as L
-import Data.Time.Hora.Format
+import Data.Fixed
 
 
+{- | UTC -}
+parse::Num a => UTCTime -> DatePart a
+parse t0 = 
+    let day1 = utctDay t0::Day
+        dt1 = utctDayTime t0::DiffTime
+        (y1,m1,d1) = toGregorian day1
+        tod1 = timeToTimeOfDay dt1::TimeOfDay
+        pico4 = todSec tod1::Fixed E12
+        (sec5, MkFixed pico5) = properFraction pico4
+    in DatePart {
+            year = fromIntegral y1,
+            month = fromIntegral m1,
+            day = fromIntegral d1,
+            hour = fromIntegral $ todHour tod1,
+            minute = fromIntegral $ todMin tod1,
+            second = fromIntegral sec5,
+            pico = fromIntegral pico5
+            }
 
-{- | specified time in specified zone, to 'DmyHmP' -}
-parse'::TimeZone -> UTCTime -> Tz DmyHmp
+
+{- | specified time zone -}
+parse'::Num a => 
+    TimeZone -> UTCTime -> Tz (DatePart a)
 parse' tz0 utc0 =
     let lt2 = L.utcToLocalTime tz0 utc0
         day2 = localDay lt2
         time2 = localTimeOfDay lt2
         (y3,m3,d3) = toGregorian day2
-        d4 = DmyHm{
-                     M.year = fromIntegral y3,
-                     M.month = m3,
-                     M.day = d3,
-                     M.hour = todHour time2,
-                     M.minute = todMin time2
+        d4 = DatePart{
+                     year = fromIntegral y3,
+                     month = fromIntegral m3,
+                     day = fromIntegral d3,
+                     hour = fromIntegral $ todHour time2,
+                     minute = fromIntegral $ todMin time2,
+                     second = fromIntegral sec5,
+                     pico = fromIntegral pico5
                    }
-        pico4 = todSec time2
-    in Tz tz0 $ DmyHmp (d4,pico4)
-
-
-{- | from specified 'UTCTime' -}
-class Parse out where
-    parse::UTCTime -> out
-    
-    
-instance Parse DmyHmp where
-    parse::UTCTime -> DmyHmp
-    parse t0 = let (dm1,pico1) = parse t0
-            in DmyHmp (read <$> dm1,read pico1)
-
-
-instance Parse DmyHmp' where
-    parse::UTCTime -> DmyHmp'
-    parse t1 =
-        let dm1 = flip formatUTCTime t1 <$> partFormats
-            pico2 = formatUTCTime spicoFormat t1
-        in (dm1,pico2)
-
+        pico4 = todSec time2::Fixed E12
+        (sec5, MkFixed pico5) = properFraction pico4
+    in Tz tz0 d4        
diff --git a/src/Data/Time/Hora/Timestamp.hs b/src/Data/Time/Hora/Timestamp.hs
--- a/src/Data/Time/Hora/Timestamp.hs
+++ b/src/Data/Time/Hora/Timestamp.hs
@@ -1,76 +1,111 @@
 module Data.Time.Hora.Timestamp 
     (-- ** numerical
-    now,
+    now, now',
     -- ** string
-    t,
-    t',
+    t, tf,
     dt,
-    d) where
+    d, d') where
 
 import Data.Time.Clock
-import Data.Time.Hora.WithTimeZone
 import Data.Time.Hora.Format
-import Data.Time.Hora.Type.DmyHm
+import Data.Time.Hora.Type.DatePart
 import Data.Time.Hora.Type.Time
 import Data.Time.Hora.Parse
+import Data.Time.LocalTime as L
 
 
-{-| time with Pico in current timezone 
+{-| UTC 
 
 >>> now
-Tz CET (DmyHm {day = 12, month = 12, year = 2016, hour = 19, minute = 33},15.546562180000)
+DatePart {year = 2016, month = 12, day = 14, hour = 9, minute = 7, second = 10, pico = 233275605000}
 -}
-now::IO (Tz DmyHmp)
-now = withTimeZone parse'
+now::IO (DatePart Int)
+now = withUTCTime parse
 
 
+{-| current timezone 
 
-{- | timestamp 
+>>> now'
+Tz CET (DatePart {year = 2016, month = 12, day = 14, hour = 10, minute = 7, second = 26, pico = 498313115000})
+-}
+now'::IO (Tz (DatePart Int))
+now' = withTimeZone parse'
 
-second.fraction. __UTC__
 
->>> t
-14:41:29.785834836
+
+{- | time.fraction UTC
+
+>>> tf
+09:10:58.030311306
 -}
-t::IO String
-t = do
+tf::IO String
+tf = do
       utc0 <- getCurrentTime
-      pure $ formatUTCTime hmsFraction utc0
+      pure $ formatUTCTime "%T%Q" utc0
 
 
-{- | timestamp 
-
-second.fraction. __UTC__
+{- | time UTC
 
->>> t'
-14:41:29 .785834836
+>>> t
+09:11:18
 -}
-t'::IO String
-t' = do
+t::IO String
+t = do
       utc0 <- getCurrentTime
-      pure $ formatUTCTime hmsFraction' utc0
+      pure $ formatUTCTime "%T" utc0
 
 
-{- | date, time (to second)  __UTC__
+{- | date, time  UTC
 
 >>> dt
-2016-12-12 14:43:13
+"2016-12-14 09:16:23"
 -}
 dt::IO String
 dt = do
       utc0 <- getCurrentTime
-      pure $ formatUTCTime ymdHms utc0
-
+      pure $ formatUTCTime "%F %T" utc0
 
 
 
-{- | date stamp /yyyymmdd/   
+{- | date  yyyymmdd   
 
-__local__ timezone
+UTC
 
 >>> d
-Tz CET "20161212"
+"20161214"
 -}
-d::IO (Tz String)
-d = withTimeZone ymd
+d::IO String
+d = withUTCTime ymd
 
+
+{- | date yyyymmdd   
+
+local timezone
+
+>>> d'
+Tz CET "20161214"
+-}
+d'::IO (Tz String)
+d' = withTimeZone ymd'
+
+
+
+type WithLocalTimeZone a = TimeZone -> UTCTime -> Tz a
+type WithUTCTime a = UTCTime -> a
+
+
+{- | do calc with current time zone from 'getCurrentTimeZone'
+
+    probably don't need it
+-}
+withTimeZone::WithLocalTimeZone a -> IO (Tz a)
+withTimeZone fn0 = do
+    z1 <- getCurrentTimeZone    --  CET | CEST
+    t1 <- getCurrentTime
+    pure $ fn0 z1 t1
+
+
+withUTCTime::WithUTCTime a -> IO a
+withUTCTime fn0 = do
+    t1 <- getCurrentTime
+    pure $ fn0 t1
diff --git a/src/Data/Time/Hora/Type/DatePart.hs b/src/Data/Time/Hora/Type/DatePart.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Time/Hora/Type/DatePart.hs
@@ -0,0 +1,44 @@
+module Data.Time.Hora.Type.DatePart where
+
+import GHC.Generics
+import Data.Binary
+
+
+-- | Date, Time parts
+data DatePart a = DatePart {
+    year::a,
+    month::a,
+    day::a,
+    hour::a,
+    minute::a,
+    second::a,
+    pico::a     -- ^ excludes seconds. Just fraction as Num    
+    } deriving (Show, Eq, Generic)
+
+
+instance Functor DatePart where
+    fmap f0 d0 = d0 {
+            day = f0 (day d0),
+            month = f0 (month d0),
+            year = f0 (year d0),
+            hour = f0 (hour d0),
+            minute = f0 (minute d0),
+            second = f0 (second d0),
+            pico = f0 (pico d0)
+        } 
+
+instance Binary (DatePart Int) 
+instance Binary (DatePart String)
+ 
+
+instance Ord (DatePart Int) where
+    (<=) a0 b0 = not $  
+        year a0 > (year b0)
+        || month a0 > (month b0)
+        || day a0 > (day b0)
+        || hour a0 > (hour b0)
+        || minute a0 > (minute b0)
+        || second a0 > (second b0)
+        || pico a0 > (pico b0)
+         
+            
diff --git a/src/Data/Time/Hora/Type/DmyHm.hs b/src/Data/Time/Hora/Type/DmyHm.hs
deleted file mode 100644
--- a/src/Data/Time/Hora/Type/DmyHm.hs
+++ /dev/null
@@ -1,66 +0,0 @@
-module Data.Time.Hora.Type.DmyHm where
-
-import GHC.Generics
-import Data.Binary
-import Data.Fixed
-import qualified Data.Time.Hora.Type.YmdHms as S
-
-
--- | Date, Time w/out second
-data DmyHm a = DmyHm {
-    day::a,
-    month::a,
-    year::a,
-    hour::a,
-    minute::a
-    } deriving (Show, Eq)
-
-
-instance Functor DmyHm where
-    fmap f0 d0 = d0 {
-            day = f0 (day d0),
-            month = f0 (month d0),
-            year = f0 (year d0),
-            hour = f0 (hour d0),
-            minute = f0 (minute d0)
-        } 
-
-
--- | @(DmyHm {day = "12", month = "12", year = "2016", hour = "17", minute = "32"},"59.727280400000")@
-type DmyHmp' = (DmyHm String, String)    --  dmyhm
-
-
--- | @DmyHmp (DmyHm {day = 12, month = 12, year = 2016, hour = 17, minute = 32},59.727482058000)@
-newtype DmyHmp = DmyHmp (DmyHm Int, Pico) deriving (Eq, Show, Generic)  --  dmyhm, pico
-
-deriving instance Generic (DmyHm Int)
-instance Binary (DmyHm Int)
-instance Binary DmyHmp
-
-{- | convert from more precise to more common type -}
-pico2second::DmyHmp -> S.YmdHms
-pico2second (DmyHmp (r0,pico0)) = S.YmdHms {
-    S.year = year r0,
-    S.month = month r0,
-    S.day = day r0,
-    S.hour = hour r0,
-    S.minute = minute r0,
-    S.second = round pico0
-    }
-    
-
-instance Ord DmyHmp where
-    (<=) (DmyHmp(a1,p1)) (DmyHmp(a2,p2)) = 
-        if a1 <= a2 then p1 <= p2
-        else False
-
-
-instance Ord (DmyHm Int) where
-    (<=) a0 b0 = not $  
-        year a0 > (year b0)
-        || month a0 > (month b0)
-        || day a0 > (day b0)
-        || hour a0 > (hour b0)
-        || minute a0 > (minute b0)
-         
-            
diff --git a/src/Data/Time/Hora/Type/Time.hs b/src/Data/Time/Hora/Type/Time.hs
--- a/src/Data/Time/Hora/Type/Time.hs
+++ b/src/Data/Time/Hora/Type/Time.hs
@@ -21,7 +21,11 @@
 
 
 
--- | ! fromInteger returns 'Pico'. assumes the value is Pico seconds
+{- | ! fromInteger returns 'Pico'. assumes the value is Pico seconds
+
+>>> Milli 397100 + (Sec 2) + 37891470000
+Pico 399137891470000
+-}
 instance Integral a => Num (TimeSpan a) where
     (+) = withPico (+)
     (*) = withPico (*)
@@ -33,8 +37,11 @@
     fromInteger i0 = Pico $ fromIntegral i0
     (-) = withPico (-)
 
+{- | safe to mix sec \/ pico \/ milli
 
--- | safe to mix sec \/ pico \/ milli 
+>>> Sec 1 == Milli 1000
+True
+-} 
 instance (Eq a, Integral a) => Eq (TimeSpan a) where
     (==) (Sec a0) (Sec b0) = a0 == b0
     (==) (Milli a0) (Milli b0) = a0 == b0
@@ -44,7 +51,10 @@
               b1 = toPico b0::Integer
 
 
--- | safe to mix sec \/ pico \/ milli 
+{- | safe to mix sec \/ pico \/ milli
+
+>>> Sec 1 > Milli 500
+True        -} 
 instance (Ord a, Integral a) => Ord (TimeSpan a) where
     (<=) (Sec a0) (Sec b0) = a0 <= b0
     (<=) (Milli a0) (Milli b0) = a0 <= b0
diff --git a/src/Data/Time/Hora/Type/YmdHms.hs b/src/Data/Time/Hora/Type/YmdHms.hs
deleted file mode 100644
--- a/src/Data/Time/Hora/Type/YmdHms.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Data.Time.Hora.Type.YmdHms where
-
-
-data YmdHms = YmdHms {
-    year::Int,
-    month::Int,
-    day::Int,
-    hour::Int,
-    minute::Int,
-    second::Int
-    } deriving (Show,Eq)
-
-
-instance Ord YmdHms where
-    (<=) a0 b0 = not $
-        year a0 > (year b0)
-        || month a0 > (month b0)
-        || day a0 > (day b0)
-        || hour a0 > (hour b0)
-        || minute a0 > (minute b0)
-        || second a0 > (second b0)
-             
diff --git a/src/Data/Time/Hora/WithTimeZone.hs b/src/Data/Time/Hora/WithTimeZone.hs
deleted file mode 100644
--- a/src/Data/Time/Hora/WithTimeZone.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Data.Time.Hora.WithTimeZone where
-
-import Data.Time.Clock
-import Data.Time.LocalTime as L
-import Data.Time.Hora.Type.Time
-
-
-type WithTimeZone a = TimeZone -> UTCTime -> Tz a
-
-{- | do calc with current time zone from 'getCurrentTimeZone'
-
-    probably don't need it
--}
-withTimeZone::WithTimeZone a -> IO (Tz a)
-withTimeZone fn0 = do
-    z1 <- getCurrentTimeZone    --  CET | CEST
-    t1 <- getCurrentTime
-    pure $ fn0 z1 t1
diff --git a/test/Test/TestConvert.hs b/test/Test/TestConvert.hs
--- a/test/Test/TestConvert.hs
+++ b/test/Test/TestConvert.hs
@@ -4,8 +4,6 @@
 import Data.Time.Hora.Type.Time
 import Data.Time.Hora.Convert
 import Data.Time.Clock
-import Data.Time.Hora.Type.DmyHm as D
-import Data.Time.Hora.Type.YmdHms as Y
 
 
 main::IO()
@@ -47,8 +45,6 @@
         it "toPicos sec" $  toPico (Sec 1) `shouldBe` 1000000000000
         it "toMillis sec" $  toMilli (Sec 1) `shouldBe` 1000
         it "toDiffTime sec" $  toDiffTime (Sec 1) `shouldBe` (secondsToDiffTime 1)
-        it "pico2second" $ pico2second (DmyHmp (DmyHm {D.day = 3, D.month = 4, D.year = 2016, D.hour = 10, D.minute = 31}, 21.2589))
-                `shouldBe` YmdHms { Y.day = 3, Y.month = 4, Y.year = 2016, Y.hour = 10, Y.minute = 31, Y.second = 21}
                 
 
 i::Int -> Int
diff --git a/test/Test/TestDiffTime.hs b/test/Test/TestDiffTime.hs
--- a/test/Test/TestDiffTime.hs
+++ b/test/Test/TestDiffTime.hs
@@ -21,10 +21,10 @@
             traceIO $ show diff3
             1 `shouldBe` 1
           it "DmyHmP" $ do
-            Tz tz1 dmy2 <- now
-            traceIO $ show dmy2
+            dmy2 <- now
+            traceIO $ "TestDiffTime" ++ (show dmy2)
             1 `shouldBe` 1
           it "dmy_local" $ do
-            Tz tz1 l1 <- d
+            Tz tz1 l1 <- d'
             traceIO $ show l1
             1 `shouldBe` 1
diff --git a/test/Test/TestDmyHm.hs b/test/Test/TestDmyHm.hs
--- a/test/Test/TestDmyHm.hs
+++ b/test/Test/TestDmyHm.hs
@@ -1,7 +1,7 @@
 module Test.TestDmyHm where
 
 import Test.Hspec
-import Data.Time.Hora.Type.DmyHm
+import Data.Time.Hora.Type.DatePart
 
 
 main::IO()
@@ -9,17 +9,21 @@
        describe "Test.TestDmyHm" $ do
           it "case 1" $ do
             a1 `shouldSatisfy` (< b1)
-        where a1 = DmyHm {
+        where a1 = DatePart {
                            year = 2016,
                            month = 10,
                            day = 3,
                            hour = 15,
-                           minute = 23
-                         }::DmyHm Int
-              b1 = DmyHm {
+                           minute = 23,
+                           second = 10,
+                           pico = 123456
+                         }::DatePart Int
+              b1 = DatePart {
                            year = 2016,
                            month = 10,
                            day = 3,
                            hour = 15,
-                           minute = 24
-                         }::DmyHm Int
+                           minute = 24,
+                           second = 10,
+                           pico = 123456
+                         }::DatePart Int
diff --git a/test/Test/TestPico.hs b/test/Test/TestPico.hs
--- a/test/Test/TestPico.hs
+++ b/test/Test/TestPico.hs
@@ -5,10 +5,11 @@
 import Data.Time.Hora.Parse
 import Data.Time.Hora.Future as F
 import Data.Time.Clock
-import Data.Time.Hora.Type.DmyHm
+import Data.Time.Hora.Type.DatePart
+import Data.Time.Hora.Type.Time
 import Data.Time.LocalTime
 import Data.Time.Hora.Timestamp
-
+import Prelude as P
 
 main::IO()
 main = hspec $ do
@@ -17,10 +18,10 @@
             now >>= traceIO . show
             1 `shouldBe` 1
           it "parse DmyHmsFormat" $ do
-            getCurrentTime >>= pure . parse >>= \(f1::DmyHmp') -> traceIO $ show f1 
+            getCurrentTime >>= pure . parse >>= \(f1::DatePart Int) -> traceIO $ show f1 
             1 `shouldBe` 1
           it "parse DmyHmP" $ do
-            getCurrentTime >>= pure . parse >>= \(f1::DmyHmp) -> traceIO $ show f1
+            getCurrentTime >>= pure . parse >>= \(f1::DatePart Int) -> traceIO $ show f1
             1 `shouldBe` 1
           it "parse' DmyHmP curr timezone" $ do
             getCurrentTime >>= \t1 -> do
@@ -31,9 +32,9 @@
           it "- pico" $ do
             t1 <- getCurrentTime 
             t2 <- getCurrentTime
-            let DmyHmp (_,d1) = parse t1::DmyHmp
-                DmyHmp (_,d2) = parse t2::DmyHmp
+            let d1 = parse t1::DatePart Integer
+                d2 = parse t2::DatePart Integer
                 diff1 = t2 F.- t1
-                diff2 = d2 F.- d1            
-            diff1 `shouldBe` diff2
+                diff2 = pico d2 P.- (pico d1)            
+            diff1 `shouldBe` (Pico diff2)
             
diff --git a/test/Test/TestTime.hs b/test/Test/TestTime.hs
--- a/test/Test/TestTime.hs
+++ b/test/Test/TestTime.hs
@@ -4,11 +4,7 @@
 import Test.Hspec
 import Debug.Trace
 import Data.Time.Hora.Timestamp
-import Text.Regex.Do.Replace.Template 
 import Prelude hiding ((<),(>))
-import Data.Time.Hora.Type.DmyHm
-import Data.Time.Clock
-import Data.Time.Hora.Format
 
 
 main::IO()
@@ -18,7 +14,7 @@
             t >>= traceIO
             1 `shouldBe` 1
           it "timestamp'" $ do
-            t' >>= traceIO
+            tf >>= traceIO
             1 `shouldBe` 1
           it "datetimestamp" $ do
             dt >>= traceIO
@@ -26,9 +22,3 @@
           it "ymd_local" $ do
             d >>= traceIO . show
             1 `shouldBe` 1
-          it "formatUTCTime" $ do
-            t1 <- getCurrentTime 
-            let p1@DmyHm{..} = partFormats
-            traceIO $ formatUTCTime (("{day}/{month} {hour}:{minute}") < [("day",day),("month",month),("hour",hour),("minute",minute)])
-                        t1  
-            1 `shouldBe` 1                                    
