refactor BlackMagicAsyncTask