reimplemented send()