Lots of work, some basic tests.