server uses callbacks (not sleep 1)