TextAdapter