implement immediate callback