added own exceptions