refactor network observer functions