network component and refactor