refactored data-fetching and screen update