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 312 10/27/2024
6.0.0-preview-07 348 3/17/2024
5.4.3 74,613 11/12/2023
5.4.2 5,467 10/17/2023
5.4.1 9,812 6/10/2023
5.4.0 3,164 5/1/2023
5.3.4 4,070 3/13/2023
5.3.3 2,198 2/16/2023
5.3.2 1,574 2/9/2023
5.3.1 4,790 11/28/2022
5.3.0 22,783 11/10/2022
5.2.2 14,992 8/23/2022
5.2.1 10,719 8/9/2022
5.2.0 3,288 8/3/2022
5.1.0 85,111 5/20/2022
5.0.2 23,747 5/10/2022
5.0.1 2,996 4/22/2022
5.0.0 4,621 4/13/2022
4.8.8 22,840 3/16/2022
4.8.7 16,683 2/27/2022
4.8.6 19,403 1/7/2022
4.8.5 4,828 12/30/2021
4.8.4 9,756 10/31/2021
4.8.3 5,412 10/20/2021
4.8.2 2,443 10/9/2021
4.8.1 40,266 7/3/2021
4.8.0 10,380 6/4/2021
4.7.8 4,406 5/27/2021
4.7.7 2,881 5/10/2021
4.7.6 9,009 4/21/2021
4.7.5 7,453 4/4/2021
4.7.4 6,518 2/26/2021
4.7.3 3,137 2/9/2021
4.7.2 25,155 1/16/2021
4.7.1 692 1/15/2021
4.7.0 1,867 1/5/2021
4.6.0 4,033 12/10/2020
4.5.2 1,726 12/3/2020
4.5.1 4,332 10/28/2020
4.5.0 4,599 10/12/2020
4.4.1 22,978 9/9/2020
4.4.0 898 9/4/2020
4.3.4 967 9/1/2020
4.3.3 1,358 8/27/2020
4.3.2 12,997 8/15/2020
4.3.1 13,320 8/7/2020
4.3.0 1,469 8/3/2020
4.2.5 1,690 7/20/2020
4.2.4 9,257 7/14/2020
4.2.3 1,264 7/4/2020
4.2.2 916 7/2/2020
4.2.1 8,286 6/8/2020
4.2.0 3,703 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,698 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,677 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,927 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,054 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,925 4/11/2018
2.12.9 7,830 4/7/2018
2.12.8 8,785 3/13/2018
2.12.7 12,739 1/19/2018
2.12.6 10,113 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,705 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,548 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,898 5/31/2017
2.11.0 7,577 5/30/2017
2.11.0-preview-02 7,430 3/15/2017
2.11.0-preview-01 7,182 3/10/2017
2.10.7 15,352 5/3/2017
2.10.6 46,692 4/20/2017
2.10.5 7,939 4/4/2017
2.10.4 7,640 3/28/2017
2.10.3 7,682 3/25/2017
2.10.2 13,004 3/14/2017
2.10.1 46,674 2/18/2017
2.10.0 17,162 2/1/2017
2.9.7 9,133 1/12/2017
2.9.6 8,569 12/30/2016
2.9.5 7,571 12/26/2016
2.9.4 8,222 12/10/2016
2.9.3 7,611 12/8/2016
2.9.2 7,614 12/3/2016
2.9.1 9,053 11/19/2016
2.9.0 7,738 11/17/2016
2.8.5 8,422 11/2/2016
2.8.4 7,702 10/28/2016
2.8.3 28,236 10/20/2016
2.8.2 9,748 10/20/2016
2.8.1 7,547 10/19/2016
2.8.0 7,520 10/18/2016
2.8.0-preview-01 7,142 10/13/2016
2.7.1 9,282 9/1/2016
2.7.0 8,011 8/19/2016
2.6.4 10,125 7/29/2016
2.6.3 7,778 7/9/2016
2.6.2 10,521 6/13/2016
2.6.0 8,102 6/10/2016
2.5.1 10,477 6/7/2016
2.5.0 12,884 5/24/2016
2.4.3 8,327 5/7/2016
2.4.2 8,189 4/26/2016
2.4.1 7,662 4/16/2016
2.4.0 8,553 4/14/2016
2.3.0 8,675 3/30/2016
2.2.2 10,843 3/10/2016
2.2.1 7,850 3/8/2016
2.2.0 9,262 2/26/2016
2.1.3 11,349 1/17/2016
2.1.2 8,718 1/15/2016
2.1.1 8,210 1/4/2016
2.1.0 7,970 12/4/2015
2.0.2 7,933 12/1/2015
2.0.1 7,721 11/27/2015
2.0.0 111,778 11/19/2015
2.0.0-rc4build353 7,263 11/18/2015
2.0.0-rc4build352 7,233 11/17/2015
2.0.0-rc4build351 7,266 11/17/2015
2.0.0-rc4build350 7,282 11/17/2015
2.0.0-rc4build349 7,260 11/12/2015
2.0.0-rc4build348 7,251 11/12/2015
2.0.0-rc4build347 7,195 11/12/2015
2.0.0-rc4build346 7,165 11/12/2015
2.0.0-rc4build345 7,207 11/12/2015
2.0.0-rc4build344 7,227 11/7/2015
2.0.0-rc4build343 7,184 11/5/2015
2.0.0-rc4build342 7,262 11/1/2015
2.0.0-rc4build341 7,191 10/29/2015
2.0.0-rc4build340 7,186 11/12/2015
2.0.0-rc4build339 7,216 11/7/2015
2.0.0-rc4build338 7,178 11/5/2015
2.0.0-rc4build337 7,137 11/1/2015
2.0.0-rc4build336 7,222 10/29/2015
2.0.0-rc3build340 7,168 10/26/2015
2.0.0-rc3build339 7,184 10/26/2015
2.0.0-rc3build338 7,151 10/23/2015
2.0.0-rc3build337 7,218 10/20/2015
2.0.0-rc3build336 7,242 10/19/2015
2.0.0-rc3build335 7,242 10/12/2015
2.0.0-rc3build334 7,308 10/10/2015
2.0.0-rc3build333 7,523 10/6/2015
2.0.0-rc3build332 7,265 10/6/2015
2.0.0-rc3build331 7,287 10/1/2015
2.0.0-rc3build330 7,269 10/1/2015
2.0.0-rc3build329 7,274 9/30/2015
2.0.0-rc3build328 7,365 9/26/2015
2.0.0-rc3build327 7,279 9/25/2015
2.0.0-rc3build326 7,268 9/25/2015
2.0.0-rc3build325 7,265 9/25/2015
2.0.0-rc3build324 7,234 9/11/2015
2.0.0-rc3build323 7,237 9/11/2015
2.0.0-rc3build322 7,242 9/11/2015
2.0.0-rc3build321 7,208 9/11/2015
2.0.0-rc3build320 7,232 9/11/2015
2.0.0-rc3build319 7,235 9/8/2015
2.0.0-rc3build318 7,217 9/6/2015
2.0.0-rc3build317 7,264 9/3/2015
2.0.0-rc3build316 7,265 9/2/2015
2.0.0-rc3build315 7,211 8/31/2015
2.0.0-rc3build314 7,251 9/8/2015
2.0.0-rc3build313 7,226 8/29/2015
2.0.0-rc3build312 7,235 8/23/2015
2.0.0-rc3build311 7,244 8/21/2015
2.0.0-rc3build310 7,211 8/18/2015
2.0.0-rc3build309 7,383 8/12/2015
2.0.0-rc3build308 7,546 8/6/2015
2.0.0-rc3build307 7,233 8/23/2015
2.0.0-rc3build306 7,454 8/6/2015
2.0.0-rc3build304 7,429 8/4/2015
2.0.0-rc3build303 7,461 8/6/2015
2.0.0-rc3build302 7,487 8/3/2015
2.0.0-rc3build301 7,416 7/31/2015
2.0.0-rc3build300 7,516 7/28/2015
2.0.0-rc3build299 7,346 7/28/2015
2.0.0-rc3build298 7,316 7/28/2015
2.0.0-rc3build297 7,385 7/31/2015
2.0.0-rc3build296 7,315 7/28/2015
2.0.0-rc2build297 7,265 7/26/2015
2.0.0-rc2build296 7,275 7/26/2015
2.0.0-rc2build295 7,316 7/24/2015
2.0.0-rc2build294 7,293 7/24/2015
2.0.0-rc2build293 7,293 7/26/2015
2.0.0-rc2build292 7,557 7/21/2015
2.0.0-rc2build291 7,275 7/24/2015
2.0.0-rc2build289 7,517 7/21/2015
2.0.0-rc1build371 7,181 1/11/2016
2.0.0-rc1build366 7,226 1/11/2016
2.0.0-rc1build288 7,224 7/4/2015
2.0.0-rc1build287 7,175 6/19/2015
2.0.0-rc1build286 7,527 6/8/2015
2.0.0-rc1build285 7,236 6/4/2015
2.0.0-rc1build284 7,206 6/3/2015
2.0.0-rc1build283 7,468 6/1/2015
2.0.0-rc1build282 7,193 5/29/2015
2.0.0-rc1build281 7,210 5/27/2015
2.0.0-rc1build280 7,159 5/27/2015
2.0.0-rc1build279 7,190 5/21/2015
2.0.0-rc1build278 7,210 5/16/2015
2.0.0-rc1build277 7,200 5/15/2015
2.0.0-rc1build276 7,195 5/21/2015
2.0.0-rc1build275 7,178 5/16/2015
2.0.0-rc1build274 7,420 5/15/2015
2.0.0-rc1build273 7,235 5/15/2015
2.0.0-rc1build272 7,184 5/14/2015
2.0.0-rc1build271 7,230 5/14/2015
2.0.0-rc1build270 7,156 5/13/2015
2.0.0-rc1build269 7,196 5/14/2015
2.0.0-rc1build268 7,231 5/12/2015
2.0.0-rc1build267 7,217 5/10/2015
2.0.0-rc1build266 7,266 5/7/2015
2.0.0-rc1build265 7,181 5/6/2015
2.0.0-rc1build264 7,272 5/5/2015
2.0.0-rc1build263 7,353 5/1/2015
2.0.0-rc1build262 7,431 4/30/2015
2.0.0-rc1build261 7,471 4/29/2015
2.0.0-rc1build260 7,549 4/28/2015
2.0.0-rc1build259 7,333 4/21/2015
2.0.0-rc1build258 7,488 4/29/2015
2.0.0-rc1build255 7,333 4/21/2015
2.0.0-preview256 7,335 4/15/2015
2.0.0-preview255 7,322 4/14/2015
2.0.0-preview254 7,283 4/14/2015
2.0.0-preview253 7,270 4/13/2015
2.0.0-preview252 7,247 4/10/2015
2.0.0-preview251 7,281 4/7/2015
2.0.0-preview250 7,279 4/6/2015
2.0.0-preview249 7,489 4/6/2015
2.0.0-preview248 7,256 4/7/2015
2.0.0-preview247 7,259 4/6/2015
2.0.0-preview246 7,307 4/6/2015
2.0.0-preview245 7,263 4/3/2015
2.0.0-preview244 7,258 4/3/2015
2.0.0-preview243 7,283 4/3/2015
2.0.0-preview242 7,295 4/2/2015
2.0.0-preview241 7,254 3/31/2015
2.0.0-preview240 7,308 3/31/2015
2.0.0-preview239 7,314 3/30/2015
2.0.0-preview238 7,271 3/30/2015
2.0.0-preview237 7,238 3/29/2015
2.0.0-preview236 7,262 3/28/2015
2.0.0-preview235 7,267 3/27/2015
2.0.0-preview234 7,252 3/27/2015
2.0.0-preview233 7,238 3/26/2015
2.0.0-preview232 7,242 3/26/2015
2.0.0-preview231 7,273 3/25/2015
2.0.0-preview230 7,273 3/25/2015
2.0.0-preview229 7,277 3/25/2015
2.0.0-preview228 7,278 3/23/2015
2.0.0-preview227 7,268 3/23/2015
2.0.0-preview226 7,247 3/19/2015
2.0.0-preview225 7,244 3/18/2015
2.0.0-preview224 7,248 3/18/2015
2.0.0-preview223 7,267 3/18/2015
2.0.0-preview222 7,249 3/17/2015
2.0.0-preview221 7,271 3/15/2015
2.0.0-preview220 7,239 3/14/2015
2.0.0-preview219 7,204 3/13/2015
2.0.0-preview218 7,271 3/11/2015
2.0.0-preview217 7,256 3/10/2015
2.0.0-preview216 7,326 3/10/2015
2.0.0-preview215 7,253 3/10/2015
2.0.0-preview214 7,270 3/10/2015
2.0.0-preview213 7,202 3/9/2015
2.0.0-preview212 7,199 3/6/2015
2.0.0-preview211 7,274 3/4/2015
2.0.0-preview210 7,244 3/4/2015
2.0.0-preview209 7,519 3/4/2015
2.0.0-preview208 7,289 3/3/2015
2.0.0-preview207 7,450 3/3/2015
2.0.0-preview206 7,302 3/3/2015
2.0.0-preview205 7,630 3/2/2015
2.0.0-preview204 7,389 3/2/2015
2.0.0-preview203 7,892 2/26/2015
2.0.0-preview202 7,474 2/25/2015
2.0.0-preview201 7,252 2/20/2015
2.0.0-preview200 7,745 2/20/2015
2.0.0-preview199 7,310 2/20/2015
2.0.0-preview198 7,575 2/19/2015
2.0.0-preview197 7,592 2/19/2015
2.0.0-preview196 7,545 2/19/2015
2.0.0-preview195 7,574 2/19/2015
2.0.0-preview194 7,495 2/18/2015
2.0.0-preview193 7,488 2/18/2015
2.0.0-preview192 7,500 2/17/2015
2.0.0-preview191 7,483 2/17/2015
2.0.0-preview190 7,572 2/17/2015
2.0.0-preview189 7,296 2/12/2015
2.0.0-preview188 7,429 2/11/2015
2.0.0-preview187 7,483 2/11/2015
2.0.0-preview186 7,560 2/11/2015
2.0.0-preview185 7,347 2/10/2015
2.0.0-preview184 7,361 2/10/2015
2.0.0-preview183 7,362 2/10/2015
2.0.0-preview182 7,410 2/9/2015
2.0.0-preview181 7,275 2/2/2015
2.0.0-preview180 7,285 2/2/2015
2.0.0-preview179 7,302 1/31/2015
2.0.0-preview178 7,293 1/30/2015
2.0.0-preview177 7,264 1/29/2015
2.0.0-preview176 7,307 1/24/2015
2.0.0-preview175 7,246 1/24/2015
2.0.0-preview174 7,335 1/23/2015
2.0.0-preview173 7,325 1/18/2015
2.0.0-preview172 7,273 1/19/2015
2.0.0-preview171 7,332 1/16/2015
2.0.0-preview170 7,213 1/16/2015
2.0.0-preview169 7,248 1/16/2015
2.0.0-preview168 7,232 1/16/2015
2.0.0-preview167 7,315 1/16/2015
2.0.0-preview166 7,246 1/15/2015
2.0.0-preview165 7,290 1/15/2015
2.0.0-preview164 7,273 1/15/2015
2.0.0-preview163 7,332 1/15/2015
2.0.0-preview162 7,329 1/14/2015
2.0.0-preview161 7,303 1/14/2015
2.0.0-preview160 7,250 1/14/2015
2.0.0-preview159 7,303 1/14/2015
2.0.0-preview158 7,259 1/14/2015
2.0.0-preview157 7,279 1/14/2015
2.0.0-preview156 7,215 1/13/2015
2.0.0-preview155 7,248 1/13/2015
2.0.0-preview154 7,330 1/12/2015
2.0.0-preview153 7,240 1/12/2015
2.0.0-preview152 7,221 1/9/2015
2.0.0-preview151 7,267 1/9/2015
2.0.0-preview150 7,245 1/8/2015
2.0.0-preview148 7,249 1/8/2015
2.0.0-preview147 7,561 1/3/2015
2.0.0-preview146 7,269 1/3/2015
2.0.0-preview145 7,743 12/30/2014
2.0.0-preview144 7,657 12/29/2014
2.0.0-preview143 7,697 12/29/2014
2.0.0-preview142 7,663 12/23/2014
2.0.0-preview141 7,656 12/23/2014
2.0.0-preview140 7,666 12/23/2014
2.0.0-preview139 7,725 12/20/2014
2.0.0-preview138 7,628 12/20/2014
2.0.0-preview137 7,686 12/20/2014
2.0.0-preview136 7,615 12/20/2014
2.0.0-preview135 7,649 12/20/2014
2.0.0-preview133 7,670 12/18/2014
2.0.0-preview132 7,492 12/15/2014
2.0.0-preview131 7,496 12/14/2014
2.0.0-preview130 7,505 12/12/2014
2.0.0-preview129 7,515 12/12/2014
2.0.0-preview128 7,465 12/11/2014
2.0.0-preview127 7,506 12/10/2014
2.0.0-preview126 7,485 12/10/2014
2.0.0-preview125 7,482 12/8/2014
2.0.0-preview124 7,552 12/8/2014
2.0.0-preview123 7,510 12/7/2014
2.0.0-preview119 7,476 11/24/2014
2.0.0-preview118 7,430 11/21/2014
2.0.0-preview116 7,733 11/13/2014
2.0.0-preview115 7,505 11/6/2014
2.0.0-preview114 7,739 11/6/2014
2.0.0-preview113 7,535 11/5/2014
2.0.0-preview112 7,504 11/5/2014
2.0.0-preview110 7,712 11/5/2014
2.0.0-preview109 7,765 11/4/2014
2.0.0-preview108 7,628 10/31/2014
2.0.0-preview107 7,797 10/31/2014
2.0.0-preview105 7,886 10/31/2014
2.0.0-preview104 7,248 10/29/2014
2.0.0-preview103 7,244 10/27/2014
2.0.0-preview102 7,253 10/27/2014
2.0.0-preview101 7,266 10/24/2014
2.0.0-beta258 7,339 4/21/2015
2.0.0-beta254 7,386 4/20/2015
1.4.1 13,350 10/9/2014
1.4.0 8,279 9/10/2014
1.3.1 7,777 8/18/2014
1.3.0 8,348 7/16/2014
1.2.2 7,802 7/2/2014
1.2.1 7,674 6/30/2014
1.2.0 8,476 1/9/2014
1.1.1 7,693 12/26/2013
1.1.0 7,620 12/26/2013
1.0.11 9,178 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.