better error handling, we actually make use of the errbacks now