Added a destination parameter to send and modified functions and declarations to suit.