use performSelectorInBackground