added background thread downloading and UI spinner