modified to work methods Async