Now uses async task instead of spawning explicate thread