added exception cases