made exceptions more specific