Improved GenericAsyncTask