DryIoc 2.0.0-rc4build345

Prefix Reserved
This is a prerelease version of DryIoc.
There is a newer version of this package available.
See the version list below for details.
dotnet add package DryIoc --version 2.0.0-rc4build345
                    
NuGet\Install-Package DryIoc -Version 2.0.0-rc4build345
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DryIoc" Version="2.0.0-rc4build345" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DryIoc" Version="2.0.0-rc4build345" />
                    
Directory.Packages.props
<PackageReference Include="DryIoc" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DryIoc --version 2.0.0-rc4build345
                    
#r "nuget: DryIoc, 2.0.0-rc4build345"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DryIoc@2.0.0-rc4build345
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DryIoc&version=2.0.0-rc4build345&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=DryIoc&version=2.0.0-rc4build345&prerelease
                    
Install as a Cake Tool

DryIoc is fast, small, full-featured IoC Container for .NET

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (21)

Showing the top 5 NuGet packages that depend on DryIoc:

Package Downloads
DryIoc.MefAttributedModel

DryIoc.MefAttributedModel is DryIoc extension to support Microsoft Managed Extensibility Framework for DryIoc container

DryIoc.CommonServiceLocator

Implementation of CommonServiceLocator for DryIoc container, see rationale at https://github.com/unitycontainer/commonservicelocator

DryIoc.WebApi

DryIoc extension for ASP.NET WebAPI

DryIoc.Web

DryIoc extension for ASP.NET providing Web Request Reuse

DryIoc.Owin

DryIoc extension for OWIN

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on DryIoc:

Repository Stars
CXWorld/CapFrameX
Frametime capture and analysis tool
seesharper/LightInject
An ultra lightweight IoC container
2fast-team/2fast
Two-Factor Authenticator Supporting TOTP (Windows 10 & Android, iOS, Linux and macOS App)
MicroSugarDeveloperOrg/Webviews.Avalonia
fluffynuts/PeanutButter
Tasty, versatile, nutritious; goes with many things in .net.
Version Downloads Last Updated
6.0.0-preview-08 311 10/27/2024
6.0.0-preview-07 348 3/17/2024
5.4.3 74,525 11/12/2023
5.4.2 5,462 10/17/2023
5.4.1 9,805 6/10/2023
5.4.0 3,162 5/1/2023
5.3.4 4,068 3/13/2023
5.3.3 2,195 2/16/2023
5.3.2 1,571 2/9/2023
5.3.1 4,788 11/28/2022
5.3.0 22,780 11/10/2022
5.2.2 14,990 8/23/2022
5.2.1 10,717 8/9/2022
5.2.0 3,286 8/3/2022
5.1.0 84,962 5/20/2022
5.0.2 23,744 5/10/2022
5.0.1 2,994 4/22/2022
5.0.0 4,618 4/13/2022
4.8.8 22,837 3/16/2022
4.8.7 16,681 2/27/2022
4.8.6 19,400 1/7/2022
4.8.5 4,825 12/30/2021
4.8.4 9,753 10/31/2021
4.8.3 5,410 10/20/2021
4.8.2 2,440 10/9/2021
4.8.1 40,264 7/3/2021
4.8.0 10,377 6/4/2021
4.7.8 4,404 5/27/2021
4.7.7 2,877 5/10/2021
4.7.6 9,007 4/21/2021
4.7.5 7,451 4/4/2021
4.7.4 6,516 2/26/2021
4.7.3 3,135 2/9/2021
4.7.2 25,153 1/16/2021
4.7.1 689 1/15/2021
4.7.0 1,835 1/5/2021
4.6.0 4,030 12/10/2020
4.5.2 1,722 12/3/2020
4.5.1 4,329 10/28/2020
4.5.0 4,596 10/12/2020
4.4.1 22,976 9/9/2020
4.4.0 896 9/4/2020
4.3.4 963 9/1/2020
4.3.3 1,356 8/27/2020
4.3.2 12,994 8/15/2020
4.3.1 13,318 8/7/2020
4.3.0 1,467 8/3/2020
4.2.5 1,688 7/20/2020
4.2.4 9,255 7/14/2020
4.2.3 1,262 7/4/2020
4.2.2 913 7/2/2020
4.2.1 8,285 6/8/2020
4.2.0 3,702 5/18/2020
4.1.4 12,354 4/3/2020
4.1.3 1,827 3/27/2020
4.1.2 2,950 3/12/2020
4.1.1 1,606 3/5/2020
4.1.0 5,696 1/20/2020
4.1.0-preview-04 645 1/5/2020
4.1.0-preview-03 741 10/3/2019
4.1.0-preview-02 771 8/25/2019
4.1.0-preview-01 6,593 8/21/2019
4.0.7 654,658 9/4/2019
4.0.6 1,676 8/29/2019
4.0.5 32,133 6/8/2019
4.0.5-preview-01 6,687 6/7/2019
4.0.4 13,675 5/1/2019
4.0.3 11,715 4/10/2019
4.0.2 8,286 3/30/2019
4.0.1 7,029 3/28/2019
4.0.0 30,926 3/4/2019
4.0.0-preview-02 6,777 2/22/2019
4.0.0-preview-01 12,934 12/1/2018
3.1.0-preview-07 7,199 11/20/2018
3.0.2 59,052 7/11/2018
3.0.1 8,278 7/7/2018
3.0.0 8,249 6/24/2018
3.0.0-preview-12 7,097 6/6/2018
3.0.0-preview-11 7,527 3/17/2018
3.0.0-preview-10 7,280 3/13/2018
3.0.0-preview-09 8,709 2/21/2018
3.0.0-preview-08 7,074 2/12/2018
3.0.0-preview-07 7,256 2/9/2018
3.0.0-preview-06 7,257 2/8/2018
3.0.0-preview-05 7,356 2/5/2018
3.0.0-preview-04 7,258 2/1/2018
3.0.0-preview-03 7,184 12/3/2017
3.0.0-preview-02 7,639 11/14/2017
3.0.0-preview-01 7,345 10/1/2017
2.12.10 41,924 4/11/2018
2.12.9 7,829 4/7/2018
2.12.8 8,784 3/13/2018
2.12.7 12,739 1/19/2018
2.12.6 10,112 12/21/2017
2.12.5 21,867 10/30/2017
2.12.4 52,255 10/17/2017
2.12.3 9,415 10/2/2017
2.12.2 8,195 9/17/2017
2.12.1 7,704 9/9/2017
2.12.0 8,918 9/1/2017
2.12.0-preview-01 7,163 8/29/2017
2.11.6 11,547 7/18/2017
2.11.5 7,585 7/12/2017
2.11.4 7,998 6/28/2017
2.11.3 14,412 6/1/2017
2.11.2 7,481 6/1/2017
2.11.1 7,897 5/31/2017
2.11.0 7,576 5/30/2017
2.11.0-preview-02 7,429 3/15/2017
2.11.0-preview-01 7,181 3/10/2017
2.10.7 15,352 5/3/2017
2.10.6 46,692 4/20/2017
2.10.5 7,938 4/4/2017
2.10.4 7,638 3/28/2017
2.10.3 7,680 3/25/2017
2.10.2 13,003 3/14/2017
2.10.1 46,673 2/18/2017
2.10.0 17,161 2/1/2017
2.9.7 9,132 1/12/2017
2.9.6 8,568 12/30/2016
2.9.5 7,570 12/26/2016
2.9.4 8,221 12/10/2016
2.9.3 7,609 12/8/2016
2.9.2 7,613 12/3/2016
2.9.1 9,051 11/19/2016
2.9.0 7,736 11/17/2016
2.8.5 8,421 11/2/2016
2.8.4 7,701 10/28/2016
2.8.3 28,233 10/20/2016
2.8.2 9,747 10/20/2016
2.8.1 7,546 10/19/2016
2.8.0 7,519 10/18/2016
2.8.0-preview-01 7,141 10/13/2016
2.7.1 9,281 9/1/2016
2.7.0 8,010 8/19/2016
2.6.4 10,124 7/29/2016
2.6.3 7,777 7/9/2016
2.6.2 10,519 6/13/2016
2.6.0 8,101 6/10/2016
2.5.1 10,476 6/7/2016
2.5.0 12,883 5/24/2016
2.4.3 8,324 5/7/2016
2.4.2 8,188 4/26/2016
2.4.1 7,661 4/16/2016
2.4.0 8,551 4/14/2016
2.3.0 8,673 3/30/2016
2.2.2 10,841 3/10/2016
2.2.1 7,848 3/8/2016
2.2.0 9,262 2/26/2016
2.1.3 11,348 1/17/2016
2.1.2 8,715 1/15/2016
2.1.1 8,209 1/4/2016
2.1.0 7,968 12/4/2015
2.0.2 7,932 12/1/2015
2.0.1 7,719 11/27/2015
2.0.0 111,776 11/19/2015
2.0.0-rc4build353 7,262 11/18/2015
2.0.0-rc4build352 7,232 11/17/2015
2.0.0-rc4build351 7,265 11/17/2015
2.0.0-rc4build350 7,281 11/17/2015
2.0.0-rc4build349 7,259 11/12/2015
2.0.0-rc4build348 7,250 11/12/2015
2.0.0-rc4build347 7,193 11/12/2015
2.0.0-rc4build346 7,164 11/12/2015
2.0.0-rc4build345 7,206 11/12/2015
2.0.0-rc4build344 7,226 11/7/2015
2.0.0-rc4build343 7,182 11/5/2015
2.0.0-rc4build342 7,261 11/1/2015
2.0.0-rc4build341 7,190 10/29/2015
2.0.0-rc4build340 7,185 11/12/2015
2.0.0-rc4build339 7,215 11/7/2015
2.0.0-rc4build338 7,177 11/5/2015
2.0.0-rc4build337 7,136 11/1/2015
2.0.0-rc4build336 7,221 10/29/2015
2.0.0-rc3build340 7,167 10/26/2015
2.0.0-rc3build339 7,183 10/26/2015
2.0.0-rc3build338 7,150 10/23/2015
2.0.0-rc3build337 7,217 10/20/2015
2.0.0-rc3build336 7,241 10/19/2015
2.0.0-rc3build335 7,241 10/12/2015
2.0.0-rc3build334 7,307 10/10/2015
2.0.0-rc3build333 7,522 10/6/2015
2.0.0-rc3build332 7,264 10/6/2015
2.0.0-rc3build331 7,286 10/1/2015
2.0.0-rc3build330 7,268 10/1/2015
2.0.0-rc3build329 7,273 9/30/2015
2.0.0-rc3build328 7,364 9/26/2015
2.0.0-rc3build327 7,278 9/25/2015
2.0.0-rc3build326 7,267 9/25/2015
2.0.0-rc3build325 7,264 9/25/2015
2.0.0-rc3build324 7,233 9/11/2015
2.0.0-rc3build323 7,236 9/11/2015
2.0.0-rc3build322 7,241 9/11/2015
2.0.0-rc3build321 7,207 9/11/2015
2.0.0-rc3build320 7,231 9/11/2015
2.0.0-rc3build319 7,234 9/8/2015
2.0.0-rc3build318 7,216 9/6/2015
2.0.0-rc3build317 7,263 9/3/2015
2.0.0-rc3build316 7,264 9/2/2015
2.0.0-rc3build315 7,210 8/31/2015
2.0.0-rc3build314 7,250 9/8/2015
2.0.0-rc3build313 7,225 8/29/2015
2.0.0-rc3build312 7,234 8/23/2015
2.0.0-rc3build311 7,243 8/21/2015
2.0.0-rc3build310 7,210 8/18/2015
2.0.0-rc3build309 7,382 8/12/2015
2.0.0-rc3build308 7,545 8/6/2015
2.0.0-rc3build307 7,232 8/23/2015
2.0.0-rc3build306 7,453 8/6/2015
2.0.0-rc3build304 7,428 8/4/2015
2.0.0-rc3build303 7,460 8/6/2015
2.0.0-rc3build302 7,485 8/3/2015
2.0.0-rc3build301 7,415 7/31/2015
2.0.0-rc3build300 7,514 7/28/2015
2.0.0-rc3build299 7,345 7/28/2015
2.0.0-rc3build298 7,315 7/28/2015
2.0.0-rc3build297 7,384 7/31/2015
2.0.0-rc3build296 7,314 7/28/2015
2.0.0-rc2build297 7,264 7/26/2015
2.0.0-rc2build296 7,274 7/26/2015
2.0.0-rc2build295 7,315 7/24/2015
2.0.0-rc2build294 7,292 7/24/2015
2.0.0-rc2build293 7,292 7/26/2015
2.0.0-rc2build292 7,555 7/21/2015
2.0.0-rc2build291 7,274 7/24/2015
2.0.0-rc2build289 7,515 7/21/2015
2.0.0-rc1build371 7,180 1/11/2016
2.0.0-rc1build366 7,226 1/11/2016
2.0.0-rc1build288 7,223 7/4/2015
2.0.0-rc1build287 7,174 6/19/2015
2.0.0-rc1build286 7,526 6/8/2015
2.0.0-rc1build285 7,235 6/4/2015
2.0.0-rc1build284 7,205 6/3/2015
2.0.0-rc1build283 7,466 6/1/2015
2.0.0-rc1build282 7,192 5/29/2015
2.0.0-rc1build281 7,209 5/27/2015
2.0.0-rc1build280 7,158 5/27/2015
2.0.0-rc1build279 7,189 5/21/2015
2.0.0-rc1build278 7,209 5/16/2015
2.0.0-rc1build277 7,199 5/15/2015
2.0.0-rc1build276 7,194 5/21/2015
2.0.0-rc1build275 7,177 5/16/2015
2.0.0-rc1build274 7,418 5/15/2015
2.0.0-rc1build273 7,233 5/15/2015
2.0.0-rc1build272 7,183 5/14/2015
2.0.0-rc1build271 7,229 5/14/2015
2.0.0-rc1build270 7,155 5/13/2015
2.0.0-rc1build269 7,195 5/14/2015
2.0.0-rc1build268 7,230 5/12/2015
2.0.0-rc1build267 7,216 5/10/2015
2.0.0-rc1build266 7,265 5/7/2015
2.0.0-rc1build265 7,180 5/6/2015
2.0.0-rc1build264 7,271 5/5/2015
2.0.0-rc1build263 7,352 5/1/2015
2.0.0-rc1build262 7,430 4/30/2015
2.0.0-rc1build261 7,470 4/29/2015
2.0.0-rc1build260 7,548 4/28/2015
2.0.0-rc1build259 7,332 4/21/2015
2.0.0-rc1build258 7,487 4/29/2015
2.0.0-rc1build255 7,332 4/21/2015
2.0.0-preview256 7,334 4/15/2015
2.0.0-preview255 7,321 4/14/2015
2.0.0-preview254 7,282 4/14/2015
2.0.0-preview253 7,269 4/13/2015
2.0.0-preview252 7,246 4/10/2015
2.0.0-preview251 7,280 4/7/2015
2.0.0-preview250 7,278 4/6/2015
2.0.0-preview249 7,488 4/6/2015
2.0.0-preview248 7,255 4/7/2015
2.0.0-preview247 7,258 4/6/2015
2.0.0-preview246 7,306 4/6/2015
2.0.0-preview245 7,262 4/3/2015
2.0.0-preview244 7,257 4/3/2015
2.0.0-preview243 7,282 4/3/2015
2.0.0-preview242 7,294 4/2/2015
2.0.0-preview241 7,252 3/31/2015
2.0.0-preview240 7,307 3/31/2015
2.0.0-preview239 7,313 3/30/2015
2.0.0-preview238 7,270 3/30/2015
2.0.0-preview237 7,237 3/29/2015
2.0.0-preview236 7,261 3/28/2015
2.0.0-preview235 7,266 3/27/2015
2.0.0-preview234 7,251 3/27/2015
2.0.0-preview233 7,237 3/26/2015
2.0.0-preview232 7,241 3/26/2015
2.0.0-preview231 7,272 3/25/2015
2.0.0-preview230 7,272 3/25/2015
2.0.0-preview229 7,276 3/25/2015
2.0.0-preview228 7,277 3/23/2015
2.0.0-preview227 7,267 3/23/2015
2.0.0-preview226 7,246 3/19/2015
2.0.0-preview225 7,243 3/18/2015
2.0.0-preview224 7,247 3/18/2015
2.0.0-preview223 7,266 3/18/2015
2.0.0-preview222 7,248 3/17/2015
2.0.0-preview221 7,270 3/15/2015
2.0.0-preview220 7,238 3/14/2015
2.0.0-preview219 7,203 3/13/2015
2.0.0-preview218 7,270 3/11/2015
2.0.0-preview217 7,255 3/10/2015
2.0.0-preview216 7,324 3/10/2015
2.0.0-preview215 7,252 3/10/2015
2.0.0-preview214 7,269 3/10/2015
2.0.0-preview213 7,201 3/9/2015
2.0.0-preview212 7,198 3/6/2015
2.0.0-preview211 7,273 3/4/2015
2.0.0-preview210 7,243 3/4/2015
2.0.0-preview209 7,518 3/4/2015
2.0.0-preview208 7,288 3/3/2015
2.0.0-preview207 7,449 3/3/2015
2.0.0-preview206 7,301 3/3/2015
2.0.0-preview205 7,629 3/2/2015
2.0.0-preview204 7,388 3/2/2015
2.0.0-preview203 7,891 2/26/2015
2.0.0-preview202 7,473 2/25/2015
2.0.0-preview201 7,251 2/20/2015
2.0.0-preview200 7,744 2/20/2015
2.0.0-preview199 7,309 2/20/2015
2.0.0-preview198 7,574 2/19/2015
2.0.0-preview197 7,591 2/19/2015
2.0.0-preview196 7,544 2/19/2015
2.0.0-preview195 7,573 2/19/2015
2.0.0-preview194 7,494 2/18/2015
2.0.0-preview193 7,487 2/18/2015
2.0.0-preview192 7,499 2/17/2015
2.0.0-preview191 7,482 2/17/2015
2.0.0-preview190 7,571 2/17/2015
2.0.0-preview189 7,295 2/12/2015
2.0.0-preview188 7,428 2/11/2015
2.0.0-preview187 7,482 2/11/2015
2.0.0-preview186 7,559 2/11/2015
2.0.0-preview185 7,346 2/10/2015
2.0.0-preview184 7,360 2/10/2015
2.0.0-preview183 7,361 2/10/2015
2.0.0-preview182 7,409 2/9/2015
2.0.0-preview181 7,274 2/2/2015
2.0.0-preview180 7,284 2/2/2015
2.0.0-preview179 7,300 1/31/2015
2.0.0-preview178 7,292 1/30/2015
2.0.0-preview177 7,263 1/29/2015
2.0.0-preview176 7,306 1/24/2015
2.0.0-preview175 7,245 1/24/2015
2.0.0-preview174 7,334 1/23/2015
2.0.0-preview173 7,324 1/18/2015
2.0.0-preview172 7,272 1/19/2015
2.0.0-preview171 7,331 1/16/2015
2.0.0-preview170 7,212 1/16/2015
2.0.0-preview169 7,247 1/16/2015
2.0.0-preview168 7,231 1/16/2015
2.0.0-preview167 7,314 1/16/2015
2.0.0-preview166 7,245 1/15/2015
2.0.0-preview165 7,289 1/15/2015
2.0.0-preview164 7,272 1/15/2015
2.0.0-preview163 7,331 1/15/2015
2.0.0-preview162 7,328 1/14/2015
2.0.0-preview161 7,302 1/14/2015
2.0.0-preview160 7,249 1/14/2015
2.0.0-preview159 7,302 1/14/2015
2.0.0-preview158 7,258 1/14/2015
2.0.0-preview157 7,278 1/14/2015
2.0.0-preview156 7,214 1/13/2015
2.0.0-preview155 7,247 1/13/2015
2.0.0-preview154 7,329 1/12/2015
2.0.0-preview153 7,239 1/12/2015
2.0.0-preview152 7,220 1/9/2015
2.0.0-preview151 7,266 1/9/2015
2.0.0-preview150 7,244 1/8/2015
2.0.0-preview148 7,246 1/8/2015
2.0.0-preview147 7,560 1/3/2015
2.0.0-preview146 7,268 1/3/2015
2.0.0-preview145 7,742 12/30/2014
2.0.0-preview144 7,655 12/29/2014
2.0.0-preview143 7,696 12/29/2014
2.0.0-preview142 7,662 12/23/2014
2.0.0-preview141 7,655 12/23/2014
2.0.0-preview140 7,665 12/23/2014
2.0.0-preview139 7,724 12/20/2014
2.0.0-preview138 7,627 12/20/2014
2.0.0-preview137 7,685 12/20/2014
2.0.0-preview136 7,614 12/20/2014
2.0.0-preview135 7,648 12/20/2014
2.0.0-preview133 7,669 12/18/2014
2.0.0-preview132 7,491 12/15/2014
2.0.0-preview131 7,495 12/14/2014
2.0.0-preview130 7,504 12/12/2014
2.0.0-preview129 7,514 12/12/2014
2.0.0-preview128 7,464 12/11/2014
2.0.0-preview127 7,505 12/10/2014
2.0.0-preview126 7,483 12/10/2014
2.0.0-preview125 7,481 12/8/2014
2.0.0-preview124 7,551 12/8/2014
2.0.0-preview123 7,509 12/7/2014
2.0.0-preview119 7,475 11/24/2014
2.0.0-preview118 7,429 11/21/2014
2.0.0-preview116 7,732 11/13/2014
2.0.0-preview115 7,504 11/6/2014
2.0.0-preview114 7,738 11/6/2014
2.0.0-preview113 7,533 11/5/2014
2.0.0-preview112 7,503 11/5/2014
2.0.0-preview110 7,711 11/5/2014
2.0.0-preview109 7,764 11/4/2014
2.0.0-preview108 7,627 10/31/2014
2.0.0-preview107 7,796 10/31/2014
2.0.0-preview105 7,885 10/31/2014
2.0.0-preview104 7,247 10/29/2014
2.0.0-preview103 7,243 10/27/2014
2.0.0-preview102 7,252 10/27/2014
2.0.0-preview101 7,265 10/24/2014
2.0.0-beta258 7,338 4/21/2015
2.0.0-beta254 7,385 4/20/2015
1.4.1 13,349 10/9/2014
1.4.0 8,278 9/10/2014
1.3.1 7,776 8/18/2014
1.3.0 8,347 7/16/2014
1.2.2 7,801 7/2/2014
1.2.1 7,673 6/30/2014
1.2.0 8,474 1/9/2014
1.1.1 7,692 12/26/2013
1.1.0 7,619 12/26/2013
1.0.11 9,176 12/24/2013

- Support for [PCL](https://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx) and [.NET Core](https://oren.codes/2015/07/29/targeting-net-core).
           - More consistent and complete API.
           - Diagnose potential resolution problems with `container.VerifyResolutions()`.
           - Possible compile-time factory delegate generation. Utilized by [DryIocZero](Companions/DryIocZero).
           - Ambient current scope and `Reuse.InWebRequest` for ASP.NET integration.
           - Support for static and instance factory methods in addition to constructor. It means support for method parameters injection.
           - Batch registration from assemblies and type collections with `RegisterMany`.
           - Service key of arbitrary type. The only requirement for key type is to implement `GetHashCode` and `Equals`.
           - Resolve as `KeyValuePair` to get service key with service object.
           - Register with condition for resolution.
           - Required service type support: e.g. `var serviceObjects = c.Resolve{object[]}(typeof(Service));`.
           - Optional parameters support.
           - Fine-grained control over injection of parameters, properties, and fields.
           - Injection of primitive values.
           - Control how reused service is stored and disposed via `weaklyReferenced` and `preventDisposal` setups.
           - Resolve service collection as `IList{T}`, `ICollection{T}`, `IReadOnlyList{T}`, `IReadOnlyCollection{T}`.
           - Register once, existing registration update, unregister.
           - Explicit cache management.
           - __removed:__ Compilation to DynamicAssembly. DryIoc is fast enough without its complexity.