Added async and await ,tweaked