Async task implemetation