uses one callback instead of two