using the callback now, no initial timeout