 
     // MARK: Image
 
-    public func image(contextBlock: ((CGContextRef) -> Void)? = nil) -> UIImage {
+    public func image() -> UIImage {
         switch self.size {
         case .Fixed(let size):
             return self.imageWithSize(size)


public extension UIImage {

    public convenience init?(size: CGSize, opaque: Bool = false, scale: CGFloat = 0, block: (CGContextRef) -> Void) {
        UIGraphicsBeginImageContextWithOptions(size, opaque, scale)
        let context = UIGraphicsGetCurrentContext()
        block(context)
        let image = CGBitmapContextCreateImage(context)
        UIGraphicsEndImageContext()
        self.init(CGImage: image)
    }

    public func with(contextBlock: (CGContextRef) -> Void) -> UIImage! {
        return UIImage(size: self.size, opaque: false, scale: self.scale) { context in
            let rect = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height)
            CGContextDrawImage(context, rect, self.CGImage)
            contextBlock(context)

            path.lineWidth = self.borderWidth
            path.fill()
            path.stroke()
        }

        if useCache {
            self.dynamicType.cachedImages[self.cacheKey] = image
