finishing base clase, and add exceptions