Added Read(), fixed a few bugs, and made tons of tests.