wrote a bunch of tests and cleaned up differ.