Rough implementation of async/await with more internal async methods. All tests passed.