 	///
 	/// - Parameter zero: behaviour with zero.
 	/// - Returns: string representation
-	func toClock(zero: DateComponentsFormatter.ZeroFormattingBehavior = .pad) -> String {
+	func toClock(zero: DateComponentsFormatter.ZeroFormattingBehavior =  [.pad, .dropLeading]) -> String {
 		return toIntervalString(options: {
+            $0.collapsesLargestUnit = true
+            $0.maximumUnitCount = 0
 			$0.unitsStyle = .positional
+            $0.locale = Locales.englishUnitedStatesComputer
 			$0.zeroFormattingBehavior = zero
 		})
 	}

		}

		/// Calendar
		public var calendar = Calendar.autoupdatingCurrent

		public func apply(toFormatter formatter: DateComponentsFormatter) {
			formatter.allowsFractionalUnits = allowsFractionalUnits
			formatter.allowedUnits = allowedUnits
			formatter.collapsesLargestUnit = collapsesLargestUnit
			formatter.maximumUnitCount = maximumUnitCount
			formatter.unitsStyle = unitsStyle
			formatter.calendar = calendar
		}

		public init() {}

	///   - style: style of the units, by default is `.abbreviated`
	/// - Returns: string representation
	func toIntervalString(options callback: ((inout ComponentsFormatterOptions) -> Void)? = nil) -> String {
		let formatter = DateComponentsFormatter()
		var options = ComponentsFormatterOptions()
		callback?(&options)
		options.apply(toFormatter: formatter)
        
        let formattedValue = formatter.string(from: self)!
        if options.zeroFormattingBehavior?.contains(.pad) ?? false {
            // for some strange reason padding is not added at the very beginning positional item.
            // we'll add it manually if necessaru
            if let index = formattedValue.firstIndex(of: ":"), index.utf16Offset(in: formattedValue) < 2 {
                return "0\(formattedValue)"
            }
        }
        return formattedValue
	}

	/// Format a time interval in a string with desidered components with passed style.
