updating call back to non blocking way