       value = leftValue
     }
 
-    left.setValue(value, forComponent: unit)
+    lhs.setValue(value, forComponent: unit)
   }
-  return left
+  return lhs
 }
 
 public func +(date: NSDate, components: NSDateComponents) -> NSDate {

      value = leftValue
    }

    left.setValue(value, forComponent: unit)
  }
  return left
}

public func-(date: NSDate, components: NSDateComponents) -> NSDate {

  return components
}

public func -(lhs: NSDateComponents, rhs: NSDateComponents) -> NSDateComponents {
  map(calendarUnits) { unit -> () in
    let leftValue = lhs.valueForComponent(unit)
    let rightValue = rhs.valueForComponent(unit)
    var value: Int

    if leftValue != Int(NSDateComponentUndefined) && rightValue != Int(NSDateComponentUndefined) {
