diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+#####   1.1.1
+    Bug fix: Ord datePart
+    
+    Timestamp now -> Num
+
 #####   1.1
     API overhaul
     
diff --git a/hora.cabal b/hora.cabal
--- a/hora.cabal
+++ b/hora.cabal
@@ -1,5 +1,5 @@
 name:                hora
-version:             1.1
+version:             1.1.1
 build-type:          Simple
 cabal-version:       >=1.10
 
@@ -51,6 +51,7 @@
                         RecordWildCards
                         DeriveGeneric
                         DeriveFunctor
+                        MultiWayIf
 
 
 test-suite spec
@@ -72,6 +73,7 @@
                         RecordWildCards
                         DeriveGeneric
                         DeriveFunctor
+                        MultiWayIf
 
   main-is: Main.hs
   other-modules:
@@ -82,6 +84,8 @@
           Test.TestDmyHm
           Test.TestPico
           Test.TestPico2
+          Test.TestDatePart
+
 
   build-depends:  base >= 4.8,
                   hspec >= 2.1.7,
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
@@ -19,7 +19,7 @@
 >>> now
 DatePart {year = 2016, month = 12, day = 14, hour = 9, minute = 7, second = 10, pico = 233275605000}
 -}
-now::IO (DatePart Int)
+now::Num a => IO (DatePart a)
 now = withUTCTime parse
 
 
@@ -28,7 +28,7 @@
 >>> now'
 Tz CET (DatePart {year = 2016, month = 12, day = 14, hour = 10, minute = 7, second = 26, pico = 498313115000})
 -}
-now'::IO (Tz (DatePart Int))
+now'::Num a => IO (Tz (DatePart a))
 now' = withTimeZone parse'
 
 
diff --git a/src/Data/Time/Hora/Type/DatePart.hs b/src/Data/Time/Hora/Type/DatePart.hs
--- a/src/Data/Time/Hora/Type/DatePart.hs
+++ b/src/Data/Time/Hora/Type/DatePart.hs
@@ -32,13 +32,24 @@
  
 
 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)
-         
-            
+    (<=) a0 b0 = 
+        let y1 = (year a0, year b0) 
+            m1 = (month a0, month b0) 
+            d1 = (day a0, day b0)
+            h1 = (hour a0, hour b0) 
+            min1 = (minute a0, minute b0) 
+            s1 = (second a0, second b0) 
+            p1 = (pico a0, pico b0) 
+            l1 = [y1,m1,d1,h1,min1,s1,p1]
+            f1 (Stop bo1) _ = Stop bo1 
+            f1 Continue (a1, b1)  
+                | a1 < b1 = Stop True   
+                | a1 == b1 = Continue   
+                | a1 > b1 = Stop False
+            res2 = foldl f1 Continue l1
+        in case res2 of 
+                Continue -> True
+                (Stop b2) -> b2   
+
+
+data Ord_ = Stop Bool | Continue 
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -7,6 +7,7 @@
 import qualified Test.TestPico as P
 import qualified Test.TestPico2 as P2
 import qualified Test.TestDmyHm as D 
+import qualified Test.TestDatePart as Dp 
 
 
 main::IO()
@@ -18,3 +19,4 @@
         P.main
         D.main
         P2.main
+        Dp.main
diff --git a/test/Test/TestDatePart.hs b/test/Test/TestDatePart.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/TestDatePart.hs
@@ -0,0 +1,37 @@
+module Test.TestDatePart where
+
+import Test.Hspec
+import Prelude hiding (until)
+import Data.Time.Hora.Type.DatePart
+default (Int) 
+
+
+main::IO()
+main = hspec $ do
+       describe "Test.TestDatePart" $ do
+          it "Ord" $ do
+            (dp 1 1 1 1 1 1 1)  `shouldSatisfy` (== (dp 1 1 1 1 1 1 1))
+            (dp 1 1 1 1 1 1 1)  `shouldSatisfy` (<= (dp 1 1 1 1 1 1 1))
+            (dp 1 1 1 1 1 1 1)  `shouldSatisfy` (>= (dp 1 1 1 1 1 1 1))
+            (dp 1 1 1 1 1 1 2)  `shouldSatisfy` (> (dp 1 1 1 1 1 1 1))
+            (dp 1 1 1 1 1 1 1)  `shouldSatisfy` (<= (dp 1 1 1 1 1 1 2))
+            (dp 2 1 1 1 1 1 1)  `shouldSatisfy` (< (dp 2 1 1 1 1 1 2))
+            (dp 1 1 1 2 1 1 1)  `shouldSatisfy` (< (dp 1 1 1 3 1 1 1))
+            (dp 1 1 1 1 3 1 1)  `shouldSatisfy` (> (dp 1 1 1 1 1 1 1))
+          it "Ord" $ do
+            now `shouldSatisfy` (< until)
+            until `shouldSatisfy` (< stop)
+
+
+now::DatePart Int
+now = DatePart {year = 2016, month = 12, day = 14, hour = 11, minute = 53, second = 38, pico = 413037964000}
+
+until::DatePart Int
+until = DatePart {year = 2016, month = 12, day = 14, hour = 11, minute = 55, second = 35, pico = 754503772000}
+
+stop:: DatePart Int
+stop = DatePart {year = 2016, month = 12, day = 14, hour = 11, minute = 55, second = 45, pico = 754504065000}
+
+
+dp::Int -> Int -> Int -> Int -> Int -> Int -> Int -> DatePart Int
+dp = DatePart
