     }
     
     path.closePath()
-    
-    
-    return path
-  }
-  
-  // MARK: Triangle
-  
+    return path
+  }
+  
+  // MARK: - Triangle
+
   private func maskTriangleBezierPath() -> UIBezierPath {
     let path = UIBezierPath()
     path.moveToPoint(CGPoint(x: bounds.width / 2.0, y: bounds.origin.y))

      case .Circle:
        maskCircle()
      case .Star:
        maskStar()
      case .Polygon:
        maskPolygon()
      case .Triangle:
        maskTriangle()
      case .Wave:
        maskWave()
      }
      return
    }
    
    // Mask Star with parameter
    // Mask Wave with parameter
  }
  
  // MARK: - Mask

    return path
  }
  
  // MARK: - Wave
  
  private func maskWaveFromString(mask: String) {
    let params = cleanMaskString(mask, maskName: "Wave").componentsSeparatedByString(",")
    if params.count == 3, let unwrappedWidth = Float(params[1]), unwrappedOffset = Float(params[2]) {
        let up = params[0] == "up"
        maskWave(up, waveWidth: CGFloat(unwrappedWidth), waveOffset: CGFloat(unwrappedOffset))
    } else {
        maskWave()
    }
  }
  
  private func maskWaveBezierPath(waveUp: Bool, waveWidth: CGFloat, waveOffset: CGFloat) -> UIBezierPath {
    let originY = waveUp ? bounds.maxY : bounds.minY
