We now handle named callbacks, results and errors, had to introduce a context object -- this may actually not be necessary, if it isn't we'd need to refactor.