reworked comms to be more sane, maybe even work on linux