Decoupling of types, completely switched to async