add exceptional cases