application and network layer split - untested but compiling