this time with networking done from scratch