TCP UDP refactor