async stuff, nameOrConnectionString, a lot refactored