added exceptions