new receive interface idea (UNTESTED)