implemented send()