added some exceptions for posible error states