rewrote Network code as V2 will remove V1 later