Completely scrap old implementation, starting from something simpler. Will add net logic later as separate module
Doh I should make sure it builds