add some ways to read and write text