Custom providersAsynchronous providersDynamic modulesCircular dependencyInjection scopesLifecycle eventsPlatform agnosticismTesting