I'll work on tests in the other branch.

This branch should be good to merge.