Yeah, I'm pretty sure this is wrong, but I wanted to put it up as a comparison to what we currently have so others can take a look. I definitely got lost in the logic in the read() method.