option to pump with a callback