TODO: figure out how to thread the send