public static Task <Foo> CreateAsync() { var result = new Foo(); return(result.InitAsync()); }
//factory method public static Task <Foo> CreateAsync(string name) { var result = new Foo(name); return(result.InitAsync()); }