This would allow us to avoid the `unittest` hack and also to make many of the member functions private.