three interfaces - tx, rx, client