use new Error() for reporting error to callback