refactored sending