moved AsyncTask to a separate class