Refactor the ipinteface to have direct access to functions
Merge branch 'working'