Rewrote read, simpler