adding tests, adding exceptions