Modified to use a ContentLoader to asynchronously load data