overriding insertTextAtCaret()