this is the part that I don't like. `log.error()` has nothing to do with the callback, and the api of the callback function.