handle exceptional cases