     
     // MARK: Delegate
     
+    /// The delegate for the ScratchCardView
+    ///
+    /// The delegate is responsible for providing the content and cover views.
+    /// It also gets notified of important events like scratch start or end.
     public weak var delegate: ScratchCardViewDelegate? {
         didSet {
             reloadView()

    
    /// The percent of total view area that is revealed by the scratches.
    /// Computing this property requires heavy CPU work,
    /// consider doing it on a backgroung thread if used frequently
    ///
    /// Returns: a value between 0 and 1
    public var scratchPercent: Double {


    // MARK: Properties
    
    /// The width of the scratch. Default is 30.
    @IBInspectable public var scratchWidth: CGFloat = 30 {
        didSet {
            canvasMaskView.lineWidth = scratchWidth
