diff --git a/lib/src/editor/spellchecker/default_spellchecker_service.dart b/lib/src/editor/spellchecker/default_spellchecker_service.dart
index 0d6c3a77..95e457d8 100644
--- a/lib/src/editor/spellchecker/default_spellchecker_service.dart
+++ b/lib/src/editor/spellchecker/default_spellchecker_service.dart
@@ -2,11 +2,14 @@ import 'package:flutter/gestures.dart' show LongPressGestureRecognizer;
 import 'package:flutter/material.dart' show TextSpan;
 import 'spellchecker_service.dart' show SpellcheckerService;
 
+/// A default implementation of the [SpellcheckerService]
+/// that always will return null since Spell checking
+/// is not a standard feature
 class DefaultSpellcheckerService extends SpellcheckerService {
   DefaultSpellcheckerService() : super(language: 'en');
 
   @override
-  void dispose() {}
+  void dispose({bool onlyPartial = false}) {}
 
   @override
   List<TextSpan>? fetchSpellchecker(String text,
diff --git a/lib/src/editor/spellchecker/simple_spellchecker_impl.dart b/lib/src/editor/spellchecker/simple_spellchecker_impl.dart
index b68f9135..aa26b108 100644
--- a/lib/src/editor/spellchecker/simple_spellchecker_impl.dart
+++ b/lib/src/editor/spellchecker/simple_spellchecker_impl.dart
@@ -4,12 +4,17 @@ import 'package:simple_spell_checker/simple_spell_checker.dart';
 
 import 'spellchecker_service.dart';
 
+/// SimpleSpellCheckerImpl is a simple spell checker for get 
+/// all words divide on different objects if them are wrong or not
 class SimpleSpellCheckerImpl extends SpellcheckerService {
   SimpleSpellCheckerImpl({required super.language})
       : checker = SimpleSpellChecker(
           language: language,
           safeDictionaryLoad: true,
         );
+  /// [SimpleSpellChecker] comes from the package [simple_spell_checker]
+  /// that give us all necessary methods for get our spans with highlighting
+  /// where needed 
   final SimpleSpellChecker checker;
 
   @override
@@ -26,7 +31,11 @@ class SimpleSpellCheckerImpl extends SpellcheckerService {
   }
 
   @override
-  void dispose() {
+  void dispose({bool onlyPartial = false}) {
+    if(onlyPartial) {
+      checker.disposeControllers();
+      return;
+    }
     checker.dispose(closeDirectionary: true);
   }
 }
diff --git a/lib/src/editor/spellchecker/spellchecker_service.dart b/lib/src/editor/spellchecker/spellchecker_service.dart
index 22748eb3..74195a7a 100644
--- a/lib/src/editor/spellchecker/spellchecker_service.dart
+++ b/lib/src/editor/spellchecker/spellchecker_service.dart
@@ -1,12 +1,22 @@
 import 'package:flutter/gestures.dart';
 import 'package:flutter/material.dart';
 
+/// A representation a custom SpellCheckService.
 abstract class SpellcheckerService {
   SpellcheckerService({required this.language});
 
   final String language;
+  /// dispose all the resources used for SpellcheckerService
+  /// 
+  /// if [onlyPartial] is true just dispose a part of the SpellcheckerService 
+  /// (this comes from the implementation)
+  ///
+  /// if [onlyPartial] is false dispose all resources
+  void dispose({bool onlyPartial = false});
 
-  void dispose();
+  /// Facilitates a spell check request.
+  ///
+  /// Returns a [List<TextSpan>] with all misspelled words divide from the right words.
   List<TextSpan>? fetchSpellchecker(String text,
       {LongPressGestureRecognizer Function(String)?
           customLongPressRecognizerOnWrongSpan});