* add some tests * add failing tests * use some; fix test * clean up code, flesh out tests * cargo fmt