internal send method synchronized