diff --git a/docs/build/examples/testing.md b/docs/build/examples/testing.md
index e65cc55a8081f546824d1dba458c925cc4556d9f..41b839dc138a3992f1c03176ddbbcc54ba824a19 100644
--- a/docs/build/examples/testing.md
+++ b/docs/build/examples/testing.md
@@ -4,24 +4,23 @@
 # Testing
 
 
-The BeagleBone tests can be run on any computer, regardless of their file-system. By setting the flag RUNNING_TESTS to true, a dummy file-system is exported in which the tests are run operate. This has the advantage of enabling testing of the code run on the BB free from the BB itself, without building the Debian FS, thereby enabling the automatic testing through Travis.
+Scripts for testing the code in `LabConnections.jl` are found under `/test`. The test-sets under `/test/BeagleBone` can be run on any computer (i.e not only on a real BeagleBone (BB)), regardless of their file system. By setting the flag RUNNING_TESTS to true, a dummy file-system is exported in which the tests are run. This has the advantage of enabling testing of the code run on the BB free from the BB itself, without building the Debian file system, thereby enabling the automatic testing through Travis.
 
 
-To run the tests, simply enter the /test/ directory and run
+To run the tests, simply navigate to the `/test` directory and run
 
 
 ```
-julia run_tests.jl
+julia runtests.jl
 ```
 
 
-If the tests are to be run on the BB with hardware in the loop, run
+If the tests are to be run on the BB with hardware in the loop, SSH into the BB and run the tests from a local Julia REPL
 
 
 ```
-julia run_tests.jl
+push!(LOAD_PATH, "/home/debian/juliapackages")
+using LabConnections
+include("/home/debian/juliapackages/LabConnections/test/runtests.jl")
 ```
 
-
-on the BB, to run examples separately, see
-
diff --git a/docs/build/man/development.md b/docs/build/man/development.md
index 7b2e4be67a8d20090e72e50f788d86ce7653272d..5670c2571f840a0ba581fd0bcd6a301e0d0cbcd2 100644
--- a/docs/build/man/development.md
+++ b/docs/build/man/development.md
@@ -4,9 +4,9 @@
 # Package Development
 
 
-<a id='Development-environment-1'></a>
+<a id='Host-computer-development-environment-1'></a>
 
-## Development environment
+## Host computer development environment
 
 
 If you want to develop the code in LabConnections.jl, then this is how you setup a development environment. First, open up a Julia REPL and type
@@ -28,3 +28,11 @@ git pull
 
 to ensure that you are working on the correct development branch for Julia v1.0.X. You can now edit the code in `.julia/dev/LabConnections` and run it using a Julia REPL. When you are satisfied with your changes, simply commit and push the changes in the `.julia/dev/LabConnections` directory to the GitLab server.
 
+
+<a id='Development-with-the-BeagleBone-in-the-loop-1'></a>
+
+## Development with the BeagleBone in the loop
+
+
+The pin map of the BeagleBone (BB) is shown below. <img src="../fig/beaglebone*black*pinmap.png" height="400" width="700"> When running examples and tests with hardware in the loop, take caution not to short the BB ground with any output pin, as this will damage the board. For instance, if connecting a diode to the output pins, always use a resistor of >1 kOhm in parallel.
+
diff --git a/docs/build/man/installation.md b/docs/build/man/installation.md
index 9007828ef635c5f97cd502474087d3e65b78fd84..c33a812abc0acb4a7b7b570ef6b0ed2ce19b6eeb 100644
--- a/docs/build/man/installation.md
+++ b/docs/build/man/installation.md
@@ -4,7 +4,7 @@
 # Installation instructions
 
 
-In these instructions we explain how to set up a working environment on a host computer and a BeagleBone Black (BBB).
+In these instructions we explain how to set up a working environment on a host computer and a BeagleBone Black (BB).
 
 
 <a id='Host-computer-setup-1'></a>
@@ -33,7 +33,7 @@ You now have the LabConnections.jl package available on the host computer. Note
 ### Installing Serbus
 
 
-To work with the SPI devices you will need a forked `serbus` repository which wraps the`linux/spi/spidev`. Open up a terminal and type
+To work with SPI on the BB you will need a forked `serbus` repository which wraps the`linux/spi/spidev`. Open up a terminal and type
 
 
 ```
@@ -55,7 +55,7 @@ to get the latest revision of the `serbus` fork. You are now done with the setup
 ### Preparing a micro-SD card
 
 
-First, we will prepare a micro-SD card with an image of Debian and a binary of Julia, which we then can flash onto the BBB.
+First, we will prepare a micro-SD card with an image of Debian and a binary of Julia, which we then can flash onto the BB.
 
 
 Start by downloading the Debian image [here](http://beagleboard.org/latest-images) (Debian 9.5 2018-10-07 4GB SD IoT) and write the image onto a micro-SD card ([this guide](http://derekmolloy.ie/write-a-new-image-to-the-beaglebone-black/) is helpful). Proceed by downloading the Julia v1.0 binary for 32-bit ARMv7 found [here](https://julialang.org/downloads/). Put the .tar-file of the Julia binary on the micro-SD card containing the Debian image under `/home/debian`, and unzip it. Make sure that the Julia folder has the correct name by typing
@@ -69,7 +69,7 @@ mv /home/debian/julia-<distro specific tag>/bin/julia /home/debian/julia/bin/jul
 The file structure on the micro-SD now has the correct structure.
 
 
-The final step is to make sure that the micro-SD will automatically flash the Debian image onto the BBB when booting up. To do this, follow the instructions found [here](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC). Congratulations, you now have a prepared micro-SD card ready for flashing a BBB.
+The final step is to make sure that the micro-SD will automatically flash the Debian image onto the BB when booting up. To do this, follow the instructions found [here](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC). Congratulations, you now have a prepared micro-SD card ready for flashing a BB.
 
 
 <a id='Flashing-the-BeagleBone-1'></a>
@@ -77,7 +77,7 @@ The final step is to make sure that the micro-SD will automatically flash the De
 ### Flashing the BeagleBone
 
 
-Insert a prepared micro-SD card in the slot on the BBB, and press down the boot button S2 (the button closest to the micro-SD slot) and hold it down while you plug in the USB-cable to the BBB. Keep the S2 button held down for a couple of seconds, until the onboard LEDs start to blink. After a short while the onboard LEDs should start to blink in a wave pattern, indicating that the BBB is being flashed. After a while (can vary between 5-45 minutes) the BBB will be turn off automatically, indicating that the flashing is complete. Remove the micro-SD before powering on the BBB again (otherwise it will start to flash the BBB again).
+Insert a prepared micro-SD card in the slot on the BB, and press down the boot button S2 (the button closest to the micro-SD slot) and hold it down while you plug in the USB-cable to the BB. Keep the S2 button held down for a couple of seconds, until the onboard LEDs start to blink. After a short while the onboard LEDs should start to blink in a wave pattern, indicating that the BB is being flashed. After a while (can vary between 5-45 minutes) the BB will be turn off automatically, indicating that the flashing is complete. Remove the micro-SD before powering on the BB again (otherwise it will start to flash the BB again).
 
 
 <a id='Accessing-the-BeagleBone-1'></a>
@@ -85,7 +85,7 @@ Insert a prepared micro-SD card in the slot on the BBB, and press down the boot
 ### Accessing the BeagleBone
 
 
-Now your BBB should be ready to use. Log on to the BeagleBone via SSH by opening a terminal and typing
+Now your BB should be ready to use. Log on to the BeagleBone via SSH by opening a terminal and typing
 
 
 ```
@@ -93,7 +93,7 @@ ssh debian@192.168.7.2
 ```
 
 
-The default password is `temppwd`. You are now logged in to the BBB running Debian. If the micro-SD was prepared correctly, the Julia binary should be located at `/home/debian/julia/bin/julia`. You can now start a Julia REPL on the BBB by typing
+The default password is `temppwd`. You are now logged in to the BB running Debian. If the micro-SD was prepared correctly, the Julia binary should be located at `/home/debian/julia/bin/julia`. You can now start a Julia REPL on the BB by typing
 
 
 ```
@@ -101,7 +101,7 @@ The default password is `temppwd`. You are now logged in to the BBB running Debi
 ```
 
 
-If the Julia REPL starts up correctly, then you have a functioning BBB ready for use with the LabConnections.jl package.
+If the Julia REPL starts up correctly, then you have a functioning BB ready for use with the LabConnections.jl package.
 
 
 <a id='Getting-LabConnections.jl-and-serbus-on-the-BeagleBone-1'></a>
@@ -109,7 +109,7 @@ If the Julia REPL starts up correctly, then you have a functioning BBB ready for
 ### Getting LabConnections.jl and serbus on the BeagleBone
 
 
-To update the BBB with the latest revision of the code, open up a terminal on the host computer and begin by cloning the `serbus` and `LabConnections.jl` repositories to a common directory
+To update the BB with the latest revision of the code, open up a terminal on the host computer and begin by cloning the `serbus` and `LabConnections.jl` repositories to a common directory
 
 
 ```
@@ -127,7 +127,7 @@ cd LabConnections/util
 ```
 
 
-This scripts bundles the current code in LabConnections.jl and serbus on the host computer and transfers it to the BBB and puts it in the directory `/home/debian/juliapackages`.
+This scripts bundles the current code in LabConnections.jl and serbus on the host computer and transfers it to the BB and puts it in the directory `/home/debian/juliapackages`.
 
 
 <a id='Setting-up-automatic-communication-1'></a>
@@ -138,7 +138,7 @@ This scripts bundles the current code in LabConnections.jl and serbus on the hos
 ### Setting up a Julia server on the BeagleBone
 
 
-To setup automatic start of Julia server on the BBB, make sure to have completed all prior installation instructions, and that the latest revision of the LabConnections package is located on the BBB. SSH into the BBB, and copy the file `juliaserver.service` to the folder `systemd/system`
+To setup automatic start of Julia server on the BB, make sure to have completed all prior installation instructions, and that the latest revision of the LabConnections package is located on the BB. SSH into the BB, and copy the file `juliaserver.service` to the folder `systemd/system`
 
 
 ```
@@ -147,7 +147,7 @@ sudo cp -r /home/debian/juliapackages/LabConnections/src/BeagleBone/startup/juli
 ```
 
 
-Then, still SSH:d into the BBB, execute the commands
+Then, still SSH:d into the BB, execute the commands
 
 
 ```
@@ -156,10 +156,10 @@ sudo systemctl start juliaserver
 ```
 
 
-After a while, the BBB should start blinking onboard LED 2 in the following pattern: on-off-on-sleep-repeat. This indicates that the server on the BBB is now running, and server should now start automatically every time you restart the BBB. With this setup ready, you should be able to run the examples in the `/Examples` folder from the host computer.
+After a while, the BB should start blinking onboard LED 2 in the following pattern: on-off-on-sleep-repeat. This indicates that the server on the BB is now running, and server should now start automatically every time you restart the BB. With this setup ready, you should be able to run the examples in the `/Examples` folder from the host computer.
 
 
-Note that no errors will be seen on the BeagleBone when the automatic startup is used. For debugging purposes it can therefore also be useful to start the service manually on the BBB. This way, any warnings or errors will be printed when starting up the Julia server. To start up the Julia server manually on the BBB, SHH into the BBB and start Julia as root
+Note that no errors will be seen on the BB when the automatic startup is used. For debugging purposes it can therefore also be useful to start the service manually on the BB. This way, any warnings or errors will be printed when starting up the Julia server. To start up the Julia server manually on the BB, SHH into the BB and start Julia as root
 
 
 ```
diff --git a/docs/build/man/introduction.md b/docs/build/man/introduction.md
index 4374052ff964357beb134d598fd943cd4ab980c2..0990b822931f4ac0adacabfc22b9e5bf0ff1f604 100644
--- a/docs/build/man/introduction.md
+++ b/docs/build/man/introduction.md
@@ -7,7 +7,7 @@
 <img src="../fig/labio_overview.png" height="150" width="900">
 
 
-This project is developing a software package in [Julia](https://julialang.org/) for interfacing with lab processes using either the [BeagleBone Black Rev C](http://beagleboard.org/) (BBB) with custom [IO-board cape](https://gitlab.control.lth.se/labdev/ioboards), or the old IO-boxes in the labs using Comedi. With this package, the user is able to setup a connection between the host computer and the IO-device, and send and receive control signals and measurements from the lab process.
+This project is developing a software package in [Julia](https://julialang.org/) for interfacing with lab processes using either the [BeagleBone Black Rev C](http://beagleboard.org/) (BB) with custom [IO-board cape](https://gitlab.control.lth.se/labdev/ioboards), or the old IO-boxes in the labs using Comedi. With this package, the user is able to setup a connection between the host computer and the IO-device, and send and receive control signals and measurements from the lab process.
 
 
 To get started, first follow the installation instruction found [here](installation.md).
diff --git a/docs/src/examples/testing.md b/docs/src/examples/testing.md
index 69d3d2bbf053643b07759628c266704c0a976eae..2e7d8eba838c7201713a40aa5390a103013188ed 100644
--- a/docs/src/examples/testing.md
+++ b/docs/src/examples/testing.md
@@ -1,16 +1,13 @@
 # Testing
-The BeagleBone tests can be run on any computer, regardless of their file-system.
-By setting the flag RUNNING_TESTS to true, a dummy file-system is exported in
-which the tests are run operate. This has the advantage of enabling testing of
-the code run on the BB free from the BB itself, without building the Debian FS,
-thereby enabling the automatic testing through Travis.
-
-To run the tests, simply enter the /test/ directory and run
-
-    julia run_tests.jl
-
-If the tests are to be run on the BB with hardware in the loop, run
-
-    julia run_tests.jl
-
-on the BB, to run examples separately, see
+Scripts for testing the code in `LabConnections.jl` are found under `/test`. The test-sets under `/test/BeagleBone` can be run on any computer (i.e not only on a real BeagleBone (BB)), regardless of their file system. By setting the flag RUNNING_TESTS to true, a dummy file-system is exported in which the tests are run. This has the advantage of enabling testing of the code run on the BB free from the BB itself, without building the Debian file system, thereby enabling the automatic testing through Travis.
+
+To run the tests, simply navigate to the `/test` directory and run
+```
+julia runtests.jl
+```
+If the tests are to be run on the BB with hardware in the loop, SSH into the BB and run the tests from a local Julia REPL
+```
+push!(LOAD_PATH, "/home/debian/juliapackages")
+using LabConnections
+include("/home/debian/juliapackages/LabConnections/test/runtests.jl")
+```
diff --git a/docs/src/man/development.md b/docs/src/man/development.md
index 0f56758cbf69392ec54b3f16246edaa8e2454726..5a7f0014ab800317dcdc21e57ee79be6c977d784 100644
--- a/docs/src/man/development.md
+++ b/docs/src/man/development.md
@@ -1,6 +1,6 @@
 # Package Development
 
-## Development environment
+## Host computer development environment
 If you want to develop the code in LabConnections.jl, then this is how you setup a development environment. First, open up a Julia REPL and type
 ```
 ] dev https://gitlab.control.lth.se/labdev/LabConnections.jl
@@ -12,3 +12,8 @@ git pull
 ```
 to ensure that you are working on the correct development branch for Julia v1.0.X. You can now edit the code in `.julia/dev/LabConnections`
 and run it using a Julia REPL. When you are satisfied with your changes, simply commit and push the changes in the `.julia/dev/LabConnections` directory to the GitLab server.
+
+## Development with the BeagleBone in the loop
+The pin map of the BeagleBone (BB) is shown below.
+<img src="../fig/beaglebone_black_pinmap.png" height="400" width="700">
+When running examples and tests with hardware in the loop, take caution not to short the BB ground with any output pin, as this will damage the board. For instance, if connecting a diode to the output pins, always use a resistor of >1 kOhm in parallel.
diff --git a/docs/src/man/installation.md b/docs/src/man/installation.md
index 4a8ff9cb5e83ba1615a281465aa37726a4ec66b6..c4915711aa891da3137eccfa28fbc8afbd477aa5 100644
--- a/docs/src/man/installation.md
+++ b/docs/src/man/installation.md
@@ -1,6 +1,5 @@
 # Installation instructions
-In these instructions we explain how to set up a working environment on a host computer and
-a BeagleBone Black (BBB).
+In these instructions we explain how to set up a working environment on a host computer and a BeagleBone Black (BB).
 
 ## Host computer setup
 
@@ -13,7 +12,7 @@ To get started, first install Julia v1.0.X on the host computer running a Linux
 You now have the LabConnections.jl package available on the host computer. Note that for Julia v1.0.X it is the branch `julia1` of the package that should be used.
 
 ### Installing Serbus
-To work with the SPI devices you will need a forked `serbus` repository which wraps the`linux/spi/spidev`. Open up a terminal and type
+To work with SPI on the BB you will need a forked `serbus` repository which wraps the`linux/spi/spidev`. Open up a terminal and type
 ```
 cd ~/.julia/packages
 git clone https://github.com/mgreiff/serbus
@@ -23,7 +22,7 @@ to get the latest revision of the `serbus` fork. You are now done with the setup
 ## BeagleBone setup
 
 ### Preparing a micro-SD card
-First, we will prepare a micro-SD card with an image of Debian and a binary of Julia, which we then can flash onto the BBB.
+First, we will prepare a micro-SD card with an image of Debian and a binary of Julia, which we then can flash onto the BB.
 
 Start by downloading the Debian image [here](http://beagleboard.org/latest-images) (Debian 9.5 2018-10-07 4GB SD IoT) and write the image onto a micro-SD card ([this guide](http://derekmolloy.ie/write-a-new-image-to-the-beaglebone-black/) is helpful).
 Proceed by downloading the Julia v1.0 binary for 32-bit ARMv7 found [here](https://julialang.org/downloads/). Put the .tar-file of the Julia binary on the micro-SD card containing the Debian image under `/home/debian`, and unzip it.
@@ -33,26 +32,26 @@ mv /home/debian/julia-<distro specific tag>/bin/julia /home/debian/julia/bin/jul
 ```
 The file structure on the micro-SD now has the correct structure.
 
-The final step is to make sure that the micro-SD will automatically flash the Debian image onto the BBB when booting up. To do this, follow the instructions found [here](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC). Congratulations, you now have a prepared micro-SD card ready for flashing a BBB.
+The final step is to make sure that the micro-SD will automatically flash the Debian image onto the BB when booting up. To do this, follow the instructions found [here](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC). Congratulations, you now have a prepared micro-SD card ready for flashing a BB.
 
 ### Flashing the BeagleBone
-Insert a prepared micro-SD card in the slot on the BBB, and press down the boot button S2 (the button closest to the micro-SD slot) and hold it down while you plug in the USB-cable to the BBB. Keep the S2 button held down for a couple of seconds, until the onboard LEDs start to blink. After a short while the onboard LEDs should start to blink in a wave pattern, indicating that the BBB is being flashed. After a while (can vary between 5-45 minutes) the BBB will be turn off automatically, indicating that the flashing is complete. Remove the micro-SD before powering on the BBB again (otherwise it will start to flash the BBB again).
+Insert a prepared micro-SD card in the slot on the BB, and press down the boot button S2 (the button closest to the micro-SD slot) and hold it down while you plug in the USB-cable to the BB. Keep the S2 button held down for a couple of seconds, until the onboard LEDs start to blink. After a short while the onboard LEDs should start to blink in a wave pattern, indicating that the BB is being flashed. After a while (can vary between 5-45 minutes) the BB will be turn off automatically, indicating that the flashing is complete. Remove the micro-SD before powering on the BB again (otherwise it will start to flash the BB again).
 
 ### Accessing the BeagleBone
-Now your BBB should be ready to use. Log on to the BeagleBone via SSH by opening a terminal and typing
+Now your BB should be ready to use. Log on to the BeagleBone via SSH by opening a terminal and typing
 ```
 ssh debian@192.168.7.2
 ```
-The default password is `temppwd`. You are now logged in to the BBB running Debian. If the micro-SD was prepared correctly, the Julia binary should be located at `/home/debian/julia/bin/julia`.
-You can now start a Julia REPL on the BBB by typing
+The default password is `temppwd`. You are now logged in to the BB running Debian. If the micro-SD was prepared correctly, the Julia binary should be located at `/home/debian/julia/bin/julia`.
+You can now start a Julia REPL on the BB by typing
 ```
 /home/debian/julia/bin/julia
 ```
-If the Julia REPL starts up correctly, then you have a functioning BBB ready for use with the LabConnections.jl package.
+If the Julia REPL starts up correctly, then you have a functioning BB ready for use with the LabConnections.jl package.
 
 ### Getting LabConnections.jl and serbus on the BeagleBone
 
-To update the BBB with the latest revision of the code, open up a terminal on the host computer and begin by cloning the `serbus` and `LabConnections.jl` repositories to a common directory
+To update the BB with the latest revision of the code, open up a terminal on the host computer and begin by cloning the `serbus` and `LabConnections.jl` repositories to a common directory
 ```
 git clone https://github.com/mgreiff/serbus
 git clone --branch julia1 https://gitlab.control.lth.se/labdev/LabConnections.jl.git
@@ -62,24 +61,24 @@ Then proceed by navigating to `LabConnections.jl/util` and run the `flash_BB.sh`
 cd LabConnections/util
 ./flash_BB.sh
 ```
-This scripts bundles the current code in LabConnections.jl and serbus on the host computer and transfers it to the BBB and puts it in the directory `/home/debian/juliapackages`.
+This scripts bundles the current code in LabConnections.jl and serbus on the host computer and transfers it to the BB and puts it in the directory `/home/debian/juliapackages`.
 
 <a id='Setting-up-automatic-communication-1'></a>
 
 ### Setting up a Julia server on the BeagleBone
-To setup automatic start of Julia server on the BBB, make sure to have completed all prior installation instructions, and that the latest revision of the LabConnections package is located on the BBB. SSH into the BBB, and copy the file `juliaserver.service` to the folder `systemd/system`
+To setup automatic start of Julia server on the BB, make sure to have completed all prior installation instructions, and that the latest revision of the LabConnections package is located on the BB. SSH into the BB, and copy the file `juliaserver.service` to the folder `systemd/system`
 ```
 ssh debian@192.168.7.2
 sudo cp -r /home/debian/juliapackages/LabConnections/src/BeagleBone/startup/juliaserver.service /lib/systemd/system/juliaserver.service
 ```
-Then, still SSH:d into the BBB, execute the commands
+Then, still SSH:d into the BB, execute the commands
 ```
 sudo systemctl enable juliaserver
 sudo systemctl start juliaserver
 ```
-After a while, the BBB should start blinking onboard LED 2 in the following pattern: on-off-on-sleep-repeat. This indicates that the server on the BBB is now running, and server should now start automatically every time you restart the BBB. With this setup ready, you should be able to run the examples in the `/Examples` folder from the host computer.
+After a while, the BB should start blinking onboard LED 2 in the following pattern: on-off-on-sleep-repeat. This indicates that the server on the BB is now running, and server should now start automatically every time you restart the BB. With this setup ready, you should be able to run the examples in the `/Examples` folder from the host computer.
 
-Note that no errors will be seen on the BeagleBone when the automatic startup is used. For debugging purposes it can therefore also be useful to start the service manually on the BBB. This way, any warnings or errors will be printed when starting up the Julia server. To start up the Julia server manually on the BBB, SHH into the BBB and start Julia as root
+Note that no errors will be seen on the BB when the automatic startup is used. For debugging purposes it can therefore also be useful to start the service manually on the BB. This way, any warnings or errors will be printed when starting up the Julia server. To start up the Julia server manually on the BB, SHH into the BB and start Julia as root
 ```
 ssh debian@192.168.7.2
 sudo /home/debian/julia/bin/julia
diff --git a/docs/src/man/introduction.md b/docs/src/man/introduction.md
index b3487ed3df8749a7384ab88a8d488ab5f538b851..1d57dcfb40fd5de36a2d950cc11ce781515c467d 100644
--- a/docs/src/man/introduction.md
+++ b/docs/src/man/introduction.md
@@ -2,7 +2,7 @@
 <img src="../fig/labio_overview.png" height="150" width="900">
 
 This project is developing a software package in [Julia](https://julialang.org/)
-for interfacing with lab processes using either the [BeagleBone Black Rev C](http://beagleboard.org/) (BBB)
+for interfacing with lab processes using either the [BeagleBone Black Rev C](http://beagleboard.org/) (BB)
 with custom [IO-board cape](https://gitlab.control.lth.se/labdev/ioboards), or the old IO-boxes in the labs using Comedi.
 With this package, the user is able to setup a connection between the
 host computer and the IO-device, and send and