 	/// - throws: throw an exception if new date cannot be evaluated
 	///
 	/// - returns: a new `Date`
-	public func add(components: [Calendar.Component: Int]) throws -> Date {
+	public func add(components: [Calendar.Component: Int]) -> Date {
 		let date: DateInRegion = self.inGMTRegion() + components
 		return date.absoluteDate
 	}

	/// - throws: throw an exception if new date cannot be evaluated
	///
	/// - returns: a new `Date`
	public func add(components: DateComponents) throws -> Date {
		let date: DateInRegion = self.inGMTRegion() + components
		return date.absoluteDate
	}

}

public func + (lhs: Date, rhs: [Calendar.Component : Int]) -> Date {
	return lhs.add(components: DateInRegion.componentsFrom(values: rhs))
}

public func - (lhs: Date, rhs: [Calendar.Component : Int]) -> Date {
	return lhs.add(components: DateInRegion.componentsFrom(values: rhs, multipler: -1))
}

public func - (lhs: Date, rhs: Date) -> TimeInterval {
