more refactoring to remove need for NetMsg and TxNetMsg