DryIoc 2.0.0-rc4build338

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-rc4build338
                    
NuGet\Install-Package DryIoc -Version 2.0.0-rc4build338
                    
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-rc4build338" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DryIoc" Version="2.0.0-rc4build338" />
                    
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-rc4build338
                    
#r "nuget: DryIoc, 2.0.0-rc4build338"
                    
#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-rc4build338
                    
#: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-rc4build338&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=DryIoc&version=2.0.0-rc4build338&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 342 10/27/2024
6.0.0-preview-07 361 3/17/2024
5.4.3 77,895 11/12/2023
5.4.2 5,575 10/17/2023
5.4.1 9,880 6/10/2023
5.4.0 3,413 5/1/2023
5.3.4 4,090 3/13/2023
5.3.3 2,224 2/16/2023
5.3.2 1,597 2/9/2023
5.3.1 4,814 11/28/2022
5.3.0 23,888 11/10/2022
5.2.2 15,081 8/23/2022
5.2.1 10,796 8/9/2022
5.2.0 3,311 8/3/2022
5.1.0 86,862 5/20/2022
5.0.2 23,947 5/10/2022
5.0.1 3,009 4/22/2022
5.0.0 4,647 4/13/2022
4.8.8 22,909 3/16/2022
4.8.7 16,752 2/27/2022
4.8.6 19,416 1/7/2022
4.8.5 5,066 12/30/2021
4.8.4 9,781 10/31/2021
4.8.3 5,434 10/20/2021
4.8.2 2,456 10/9/2021
4.8.1 40,307 7/3/2021
4.8.0 10,424 6/4/2021
4.7.8 4,419 5/27/2021
4.7.7 2,921 5/10/2021
4.7.6 9,022 4/21/2021
4.7.5 7,465 4/4/2021
4.7.4 6,533 2/26/2021
4.7.3 3,154 2/9/2021
4.7.2 25,175 1/16/2021
4.7.1 707 1/15/2021
4.7.0 2,305 1/5/2021
4.6.0 4,048 12/10/2020
4.5.2 1,741 12/3/2020
4.5.1 4,356 10/28/2020
4.5.0 4,616 10/12/2020
4.4.1 23,048 9/9/2020
4.4.0 913 9/4/2020
4.3.4 981 9/1/2020
4.3.3 1,374 8/27/2020
4.3.2 13,015 8/15/2020
4.3.1 13,491 8/7/2020
4.3.0 1,483 8/3/2020
4.2.5 1,704 7/20/2020
4.2.4 9,358 7/14/2020
4.2.3 1,278 7/4/2020
4.2.2 931 7/2/2020
4.2.1 8,387 6/8/2020
4.2.0 3,718 5/18/2020
4.1.4 12,452 4/3/2020
4.1.3 1,841 3/27/2020
4.1.2 2,965 3/12/2020
4.1.1 1,621 3/5/2020
4.1.0 5,715 1/20/2020
4.1.0-preview-04 666 1/5/2020
4.1.0-preview-03 763 10/3/2019
4.1.0-preview-02 792 8/25/2019
4.1.0-preview-01 6,616 8/21/2019
4.0.7 654,726 9/4/2019
4.0.6 1,698 8/29/2019
4.0.5 32,160 6/8/2019
4.0.5-preview-01 6,709 6/7/2019
4.0.4 13,707 5/1/2019
4.0.3 11,738 4/10/2019
4.0.2 8,310 3/30/2019
4.0.1 7,054 3/28/2019
4.0.0 31,020 3/4/2019
4.0.0-preview-02 6,798 2/22/2019
4.0.0-preview-01 12,956 12/1/2018
3.1.0-preview-07 7,220 11/20/2018
3.0.2 59,140 7/11/2018
3.0.1 8,321 7/7/2018
3.0.0 8,312 6/24/2018
3.0.0-preview-12 7,139 6/6/2018
3.0.0-preview-11 7,591 3/17/2018
3.0.0-preview-10 7,339 3/13/2018
3.0.0-preview-09 8,751 2/21/2018
3.0.0-preview-08 7,115 2/12/2018
3.0.0-preview-07 7,320 2/9/2018
3.0.0-preview-06 7,318 2/8/2018
3.0.0-preview-05 7,419 2/5/2018
3.0.0-preview-04 7,323 2/1/2018
3.0.0-preview-03 7,225 12/3/2017
3.0.0-preview-02 7,681 11/14/2017
3.0.0-preview-01 7,387 10/1/2017
2.12.10 42,034 4/11/2018
2.12.9 7,891 4/7/2018
2.12.8 8,845 3/13/2018
2.12.7 12,801 1/19/2018
2.12.6 10,177 12/21/2017
2.12.5 21,909 10/30/2017
2.12.4 52,297 10/17/2017
2.12.3 9,457 10/2/2017
2.12.2 8,237 9/17/2017
2.12.1 7,748 9/9/2017
2.12.0 8,959 9/1/2017
2.12.0-preview-01 7,204 8/29/2017
2.11.6 11,590 7/18/2017
2.11.5 7,626 7/12/2017
2.11.4 8,041 6/28/2017
2.11.3 14,484 6/1/2017
2.11.2 7,524 6/1/2017
2.11.1 7,939 5/31/2017
2.11.0 7,619 5/30/2017
2.11.0-preview-02 7,474 3/15/2017
2.11.0-preview-01 7,223 3/10/2017
2.10.7 15,401 5/3/2017
2.10.6 46,733 4/20/2017
2.10.5 7,982 4/4/2017
2.10.4 7,682 3/28/2017
2.10.3 7,723 3/25/2017
2.10.2 13,045 3/14/2017
2.10.1 46,718 2/18/2017
2.10.0 17,423 2/1/2017
2.9.7 9,177 1/12/2017
2.9.6 8,611 12/30/2016
2.9.5 7,614 12/26/2016
2.9.4 8,264 12/10/2016
2.9.3 7,655 12/8/2016
2.9.2 7,657 12/3/2016
2.9.1 9,096 11/19/2016
2.9.0 7,782 11/17/2016
2.8.5 8,464 11/2/2016
2.8.4 7,745 10/28/2016
2.8.3 28,329 10/20/2016
2.8.2 9,791 10/20/2016
2.8.1 7,589 10/19/2016
2.8.0 7,563 10/18/2016
2.8.0-preview-01 7,183 10/13/2016
2.7.1 9,325 9/1/2016
2.7.0 8,054 8/19/2016
2.6.4 10,173 7/29/2016
2.6.3 7,820 7/9/2016
2.6.2 10,564 6/13/2016
2.6.0 8,145 6/10/2016
2.5.1 10,531 6/7/2016
2.5.0 12,929 5/24/2016
2.4.3 8,371 5/7/2016
2.4.2 8,231 4/26/2016
2.4.1 7,706 4/16/2016
2.4.0 8,594 4/14/2016
2.3.0 8,717 3/30/2016
2.2.2 10,907 3/10/2016
2.2.1 7,892 3/8/2016
2.2.0 9,307 2/26/2016
2.1.3 11,393 1/17/2016
2.1.2 8,782 1/15/2016
2.1.1 8,253 1/4/2016
2.1.0 8,014 12/4/2015
2.0.2 7,977 12/1/2015
2.0.1 7,764 11/27/2015
2.0.0 111,821 11/19/2015
2.0.0-rc4build353 7,306 11/18/2015
2.0.0-rc4build352 7,276 11/17/2015
2.0.0-rc4build351 7,308 11/17/2015
2.0.0-rc4build350 7,324 11/17/2015
2.0.0-rc4build349 7,302 11/12/2015
2.0.0-rc4build348 7,294 11/12/2015
2.0.0-rc4build347 7,240 11/12/2015
2.0.0-rc4build346 7,207 11/12/2015
2.0.0-rc4build345 7,251 11/12/2015
2.0.0-rc4build344 7,270 11/7/2015
2.0.0-rc4build343 7,227 11/5/2015
2.0.0-rc4build342 7,305 11/1/2015
2.0.0-rc4build341 7,234 10/29/2015
2.0.0-rc4build340 7,232 11/12/2015
2.0.0-rc4build339 7,259 11/7/2015
2.0.0-rc4build338 7,224 11/5/2015
2.0.0-rc4build337 7,179 11/1/2015
2.0.0-rc4build336 7,265 10/29/2015
2.0.0-rc3build340 7,210 10/26/2015
2.0.0-rc3build339 7,227 10/26/2015
2.0.0-rc3build338 7,194 10/23/2015
2.0.0-rc3build337 7,262 10/20/2015
2.0.0-rc3build336 7,286 10/19/2015
2.0.0-rc3build335 7,285 10/12/2015
2.0.0-rc3build334 7,351 10/10/2015
2.0.0-rc3build333 7,566 10/6/2015
2.0.0-rc3build332 7,308 10/6/2015
2.0.0-rc3build331 7,335 10/1/2015
2.0.0-rc3build330 7,311 10/1/2015
2.0.0-rc3build329 7,318 9/30/2015
2.0.0-rc3build328 7,408 9/26/2015
2.0.0-rc3build327 7,321 9/25/2015
2.0.0-rc3build326 7,310 9/25/2015
2.0.0-rc3build325 7,307 9/25/2015
2.0.0-rc3build324 7,276 9/11/2015
2.0.0-rc3build323 7,279 9/11/2015
2.0.0-rc3build322 7,285 9/11/2015
2.0.0-rc3build321 7,252 9/11/2015
2.0.0-rc3build320 7,274 9/11/2015
2.0.0-rc3build319 7,279 9/8/2015
2.0.0-rc3build318 7,259 9/6/2015
2.0.0-rc3build317 7,306 9/3/2015
2.0.0-rc3build316 7,308 9/2/2015
2.0.0-rc3build315 7,254 8/31/2015
2.0.0-rc3build314 7,293 9/8/2015
2.0.0-rc3build313 7,268 8/29/2015
2.0.0-rc3build312 7,278 8/23/2015
2.0.0-rc3build311 7,286 8/21/2015
2.0.0-rc3build310 7,254 8/18/2015
2.0.0-rc3build309 7,426 8/12/2015
2.0.0-rc3build308 7,589 8/6/2015
2.0.0-rc3build307 7,275 8/23/2015
2.0.0-rc3build306 7,497 8/6/2015
2.0.0-rc3build304 7,471 8/4/2015
2.0.0-rc3build303 7,504 8/6/2015
2.0.0-rc3build302 7,530 8/3/2015
2.0.0-rc3build301 7,459 7/31/2015
2.0.0-rc3build300 7,559 7/28/2015
2.0.0-rc3build299 7,389 7/28/2015
2.0.0-rc3build298 7,359 7/28/2015
2.0.0-rc3build297 7,427 7/31/2015
2.0.0-rc3build296 7,359 7/28/2015
2.0.0-rc2build297 7,309 7/26/2015
2.0.0-rc2build296 7,319 7/26/2015
2.0.0-rc2build295 7,359 7/24/2015
2.0.0-rc2build294 7,337 7/24/2015
2.0.0-rc2build293 7,336 7/26/2015
2.0.0-rc2build292 7,627 7/21/2015
2.0.0-rc2build291 7,318 7/24/2015
2.0.0-rc2build289 7,581 7/21/2015
2.0.0-rc1build371 7,224 1/11/2016
2.0.0-rc1build366 7,268 1/11/2016
2.0.0-rc1build288 7,266 7/4/2015
2.0.0-rc1build287 7,219 6/19/2015
2.0.0-rc1build286 7,569 6/8/2015
2.0.0-rc1build285 7,279 6/4/2015
2.0.0-rc1build284 7,248 6/3/2015
2.0.0-rc1build283 7,531 6/1/2015
2.0.0-rc1build282 7,236 5/29/2015
2.0.0-rc1build281 7,252 5/27/2015
2.0.0-rc1build280 7,202 5/27/2015
2.0.0-rc1build279 7,232 5/21/2015
2.0.0-rc1build278 7,254 5/16/2015
2.0.0-rc1build277 7,245 5/15/2015
2.0.0-rc1build276 7,240 5/21/2015
2.0.0-rc1build275 7,221 5/16/2015
2.0.0-rc1build274 7,485 5/15/2015
2.0.0-rc1build273 7,279 5/15/2015
2.0.0-rc1build272 7,227 5/14/2015
2.0.0-rc1build271 7,272 5/14/2015
2.0.0-rc1build270 7,200 5/13/2015
2.0.0-rc1build269 7,240 5/14/2015
2.0.0-rc1build268 7,274 5/12/2015
2.0.0-rc1build267 7,259 5/10/2015
2.0.0-rc1build266 7,308 5/7/2015
2.0.0-rc1build265 7,224 5/6/2015
2.0.0-rc1build264 7,315 5/5/2015
2.0.0-rc1build263 7,395 5/1/2015
2.0.0-rc1build262 7,476 4/30/2015
2.0.0-rc1build261 7,513 4/29/2015
2.0.0-rc1build260 7,592 4/28/2015
2.0.0-rc1build259 7,376 4/21/2015
2.0.0-rc1build258 7,531 4/29/2015
2.0.0-rc1build255 7,375 4/21/2015
2.0.0-preview256 7,377 4/15/2015
2.0.0-preview255 7,365 4/14/2015
2.0.0-preview254 7,325 4/14/2015
2.0.0-preview253 7,312 4/13/2015
2.0.0-preview252 7,290 4/10/2015
2.0.0-preview251 7,323 4/7/2015
2.0.0-preview250 7,321 4/6/2015
2.0.0-preview249 7,532 4/6/2015
2.0.0-preview248 7,300 4/7/2015
2.0.0-preview247 7,303 4/6/2015
2.0.0-preview246 7,349 4/6/2015
2.0.0-preview245 7,306 4/3/2015
2.0.0-preview244 7,299 4/3/2015
2.0.0-preview243 7,326 4/3/2015
2.0.0-preview242 7,337 4/2/2015
2.0.0-preview241 7,299 3/31/2015
2.0.0-preview240 7,354 3/31/2015
2.0.0-preview239 7,358 3/30/2015
2.0.0-preview238 7,312 3/30/2015
2.0.0-preview237 7,281 3/29/2015
2.0.0-preview236 7,304 3/28/2015
2.0.0-preview235 7,311 3/27/2015
2.0.0-preview234 7,295 3/27/2015
2.0.0-preview233 7,283 3/26/2015
2.0.0-preview232 7,285 3/26/2015
2.0.0-preview231 7,318 3/25/2015
2.0.0-preview230 7,315 3/25/2015
2.0.0-preview229 7,320 3/25/2015
2.0.0-preview228 7,321 3/23/2015
2.0.0-preview227 7,311 3/23/2015
2.0.0-preview226 7,289 3/19/2015
2.0.0-preview225 7,288 3/18/2015
2.0.0-preview224 7,292 3/18/2015
2.0.0-preview223 7,312 3/18/2015
2.0.0-preview222 7,291 3/17/2015
2.0.0-preview221 7,313 3/15/2015
2.0.0-preview220 7,282 3/14/2015
2.0.0-preview219 7,246 3/13/2015
2.0.0-preview218 7,314 3/11/2015
2.0.0-preview217 7,298 3/10/2015
2.0.0-preview216 7,370 3/10/2015
2.0.0-preview215 7,298 3/10/2015
2.0.0-preview214 7,313 3/10/2015
2.0.0-preview213 7,246 3/9/2015
2.0.0-preview212 7,242 3/6/2015
2.0.0-preview211 7,316 3/4/2015
2.0.0-preview210 7,288 3/4/2015
2.0.0-preview209 7,562 3/4/2015
2.0.0-preview208 7,331 3/3/2015
2.0.0-preview207 7,492 3/3/2015
2.0.0-preview206 7,345 3/3/2015
2.0.0-preview205 7,673 3/2/2015
2.0.0-preview204 7,431 3/2/2015
2.0.0-preview203 7,935 2/26/2015
2.0.0-preview202 7,516 2/25/2015
2.0.0-preview201 7,294 2/20/2015
2.0.0-preview200 7,788 2/20/2015
2.0.0-preview199 7,355 2/20/2015
2.0.0-preview198 7,618 2/19/2015
2.0.0-preview197 7,635 2/19/2015
2.0.0-preview196 7,588 2/19/2015
2.0.0-preview195 7,621 2/19/2015
2.0.0-preview194 7,538 2/18/2015
2.0.0-preview193 7,530 2/18/2015
2.0.0-preview192 7,543 2/17/2015
2.0.0-preview191 7,527 2/17/2015
2.0.0-preview190 7,615 2/17/2015
2.0.0-preview189 7,339 2/12/2015
2.0.0-preview188 7,471 2/11/2015
2.0.0-preview187 7,527 2/11/2015
2.0.0-preview186 7,604 2/11/2015
2.0.0-preview185 7,389 2/10/2015
2.0.0-preview184 7,405 2/10/2015
2.0.0-preview183 7,406 2/10/2015
2.0.0-preview182 7,452 2/9/2015
2.0.0-preview181 7,318 2/2/2015
2.0.0-preview180 7,327 2/2/2015
2.0.0-preview179 7,345 1/31/2015
2.0.0-preview178 7,335 1/30/2015
2.0.0-preview177 7,307 1/29/2015
2.0.0-preview176 7,350 1/24/2015
2.0.0-preview175 7,289 1/24/2015
2.0.0-preview174 7,378 1/23/2015
2.0.0-preview173 7,367 1/18/2015
2.0.0-preview172 7,317 1/19/2015
2.0.0-preview171 7,375 1/16/2015
2.0.0-preview170 7,256 1/16/2015
2.0.0-preview169 7,292 1/16/2015
2.0.0-preview168 7,275 1/16/2015
2.0.0-preview167 7,358 1/16/2015
2.0.0-preview166 7,291 1/15/2015
2.0.0-preview165 7,334 1/15/2015
2.0.0-preview164 7,317 1/15/2015
2.0.0-preview163 7,376 1/15/2015
2.0.0-preview162 7,372 1/14/2015
2.0.0-preview161 7,347 1/14/2015
2.0.0-preview160 7,294 1/14/2015
2.0.0-preview159 7,346 1/14/2015
2.0.0-preview158 7,303 1/14/2015
2.0.0-preview157 7,322 1/14/2015
2.0.0-preview156 7,259 1/13/2015
2.0.0-preview155 7,290 1/13/2015
2.0.0-preview154 7,372 1/12/2015
2.0.0-preview153 7,283 1/12/2015
2.0.0-preview152 7,280 1/9/2015
2.0.0-preview151 7,309 1/9/2015
2.0.0-preview150 7,287 1/8/2015
2.0.0-preview148 7,292 1/8/2015
2.0.0-preview147 7,604 1/3/2015
2.0.0-preview146 7,312 1/3/2015
2.0.0-preview145 7,785 12/30/2014
2.0.0-preview144 7,701 12/29/2014
2.0.0-preview143 7,740 12/29/2014
2.0.0-preview142 7,706 12/23/2014
2.0.0-preview141 7,699 12/23/2014
2.0.0-preview140 7,709 12/23/2014
2.0.0-preview139 7,768 12/20/2014
2.0.0-preview138 7,671 12/20/2014
2.0.0-preview137 7,728 12/20/2014
2.0.0-preview136 7,659 12/20/2014
2.0.0-preview135 7,692 12/20/2014
2.0.0-preview133 7,716 12/18/2014
2.0.0-preview132 7,535 12/15/2014
2.0.0-preview131 7,539 12/14/2014
2.0.0-preview130 7,547 12/12/2014
2.0.0-preview129 7,559 12/12/2014
2.0.0-preview128 7,508 12/11/2014
2.0.0-preview127 7,549 12/10/2014
2.0.0-preview126 7,528 12/10/2014
2.0.0-preview125 7,526 12/8/2014
2.0.0-preview124 7,595 12/8/2014
2.0.0-preview123 7,555 12/7/2014
2.0.0-preview119 7,519 11/24/2014
2.0.0-preview118 7,473 11/21/2014
2.0.0-preview116 7,777 11/13/2014
2.0.0-preview115 7,547 11/6/2014
2.0.0-preview114 7,783 11/6/2014
2.0.0-preview113 7,577 11/5/2014
2.0.0-preview112 7,547 11/5/2014
2.0.0-preview110 7,755 11/5/2014
2.0.0-preview109 7,807 11/4/2014
2.0.0-preview108 7,670 10/31/2014
2.0.0-preview107 7,840 10/31/2014
2.0.0-preview105 7,929 10/31/2014
2.0.0-preview104 7,291 10/29/2014
2.0.0-preview103 7,286 10/27/2014
2.0.0-preview102 7,295 10/27/2014
2.0.0-preview101 7,309 10/24/2014
2.0.0-beta258 7,383 4/21/2015
2.0.0-beta254 7,429 4/20/2015
1.4.1 13,392 10/9/2014
1.4.0 8,322 9/10/2014
1.3.1 7,820 8/18/2014
1.3.0 8,390 7/16/2014
1.2.2 7,845 7/2/2014
1.2.1 7,716 6/30/2014
1.2.0 8,520 1/9/2014
1.1.1 7,736 12/26/2013
1.1.0 7,664 12/26/2013
1.0.11 9,229 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.