Rewrite to separate I/O into three classes for files, Network and Line (USB).  It all compiles, but has not yet been tested...