no need for intermediate error object