Renamed some stuff, added some tests and added recursive savings on TokenStream.