Restructuring specification, tests, new exceptions.