you can also have an `error` callback now