add a chapter of error handling; revise the whole translation as more natural