Make all tasks asynchronous to reduce call stack