implemented loopback communication