refactor readers/writers into separate threads w/ new communication model, works with mouse relaying, need to test and look at cpu usage