restructur exceptions