add BaseLoader class to simplify AsyncTaskLoader