More updates to the reader. Changed State into an interface, consolidated more code, and got rid of some TODOs.