implemnt a good text editor