save work

most tests are done
docstrings written out
most of the codebase is sane