better send() callback handingling