 /**
 A unit representing a minute
 */
-public struct Minutes : TemporalUnit {
+public struct Minutes : TemporalUnit, TemporalAmount {
+
+    public let count: Int64
+
+    public init(_ count: Int64) {
+        self.count = count
+    }
+
+    public func supports(field: TemporalUnit) -> Bool {
+        switch field {
+        case is Minutes:
+            return true
+        default:
+            return false
+        }
+    }
+
+    public func get(unit: TemporalUnit) throws -> Int64 {
+        switch unit {
+        case is Minutes:
+            return count
+        default:
+            throw DateTimeErrors.UnsupportedUnit
+        }
+    }
+
     public static func addTo<T : Temporal>(temporal: T, amount: Int64) throws -> T {
         return temporal.add(amount.minutes())
     }
-    
+
     public static func between<T : Temporal>(start: T, and: T) -> Int64 {
         return 0
     }

            return false
        }
    }
    
    public func get(unit: TemporalUnit) throws -> Int64 {
        switch unit {
        case is Hours:

/**
A unit representing a second
*/
public struct Seconds : TemporalUnit, TemporalAmount {

    public let count: Int64

    public init(_ count: Int64) {
        self.count = count
    }

    public func supports(field: TemporalUnit) -> Bool {
        switch field {
        case is Seconds:
            return true
        default:
            return false
        }
    }

    public func get(unit: TemporalUnit) throws -> Int64 {
        switch unit {
        case is Seconds:
            return count
        default:
            throw DateTimeErrors.UnsupportedUnit
        }
    }

    public static func addTo<T : Temporal>(temporal: T, amount: Int64) throws -> T {
        return temporal.add(amount.seconds())
    }

    public static func between<T : Temporal>(start: T, and: T) -> Int64 {
        return 0
    }
