reorgansing some exceptions