Add a bunch of tests. Not all of them pass yet.