feat(network): add network events
feat(network): make network an event emitter