actually dispose resources called in dispose() after isDisposed check
@override Future<void> performDispose() async { textEditingController.dispose(); }