start raising exceptions, and a couple of tests