throws its own exception
added its own exception