 
             text.addAttributes(attributes, range: range)
         }
+        return rangeToApply
     }
 
     /// Toggles the Attribute Format, into a given string, at the specified range.
     ///
     @discardableResult
-    func toggle(in text: NSMutableAttributedString, at range: NSRange) -> NSRange? {
+    func toggle(in text: NSMutableAttributedString, at range: NSRange) -> NSRange {
         //We decide if we need to apply or not the attribute based on the value on the initial position of the range
         let shouldApply =  shouldApplyAttributes(to: text, at: range)
 
         if shouldApply {
-            applyAttributes(to: text, at: range)
+            return applyAttributes(to: text, at: range)
         } else {
-            removeAttributes(from: text, at: range)
-        }
-
-        return nil
+            return removeAttributes(from: text, at: range)
+        }        
     }
 }
 

    ///     - text: Text that should be formatted.
    ///     - range: Segment of text which format should be toggled.
    ///
    @discardableResult func toggle(in text: NSMutableAttributedString, at range: NSRange) -> NSRange?

    /// Apply or removes formatter attributes to the provided attribute dictionary and returns it.
    ///


    /// Applies the Formatter's Attributes into a given string, at the specified range.
    ///
    @discardableResult func applyAttributes(to string: NSMutableAttributedString, at range: NSRange) -> NSRange

    /// Removes the Formatter's Attributes from a given string, at the specified range.
    ///
    @discardableResult func removeAttributes(from string: NSMutableAttributedString, at range: NSRange) -> NSRange

    /// Checks if the attribute is present in a dictionary of attributes.
    ///
