a lot more on_send work; cleaned up specs