moved the web loading logic into the data controller and added pull to refresh