here and elsewhere- why callbacks? The code looks sync