because sometimes I'm a bit confused abut all the callback/async stuffs