heavily refactored app fetching