This essentially completes the token_reader. In the future, we will probably want something that lets us allocate maps/arrays more seamlessly, but we can start working on client-server architecture with this reader.