broke TXTFile.process into smaller pieces, all with tests