working copy
now sends and recieves bytes