callback is now called with an argument