a text editer based on GOF