working version with single send method