 private func lineToVertical (numbers: [CGFloat], lastCommand: SVGCommand?, coords: Coordinates) -> [SVGCommand] {
     return take(numbers, 1, lastCommand) {
         (nums:Slice<CGFloat>, last: SVGCommand?) -> SVGCommand in
-        var point:CGPoint = CGPoint(x: 0, y: nums[0])
-        
-        if coords == .Absolute {
-            point.x = last?.point.x ?? 0
-        }
-        
-        return SVGCommand(point, type: .Line)
+        return SVGCommand(coords == .Absolute ? last?.point.x ?? 0 : 0, nums[0], type: .Line)
     }
 }
 

private func lineToHorizontal (numbers: [CGFloat], lastCommand: SVGCommand?, coords: Coordinates) -> [SVGCommand] {
    return take(numbers, 1, lastCommand) {
        (nums:Slice<CGFloat>, last: SVGCommand?) -> SVGCommand in
        var point:CGPoint = CGPoint(x: nums[0], y: 0)
        
        if coords == .Absolute {
            point.y = last?.point.y ?? 0
        }
        
        return SVGCommand(point, type: .Line)
    }
}


private func lineTo (numbers: [CGFloat], lastCommand: SVGCommand?, coords: Coordinates) -> [SVGCommand] {
    return take(numbers, 2, lastCommand) {
        (nums:Slice<CGFloat>, last: SVGCommand?) -> SVGCommand in
        return SVGCommand(nums[0], nums[1], type: .Line)
    }
}

