So much stuff

There's a small make error I need to sort out, but I should probably commit
things as I go.

I implemented errors and fixed up a lot of our logic. Testing isn't finished
though.