improved DependencyProvider and ServiceContainer