improve test cases, more descriptive exceptions