added Network library include abstraction
a lot of refactoring and file splitting
a lot of refactoring and file splitting