DryIoc 2.0.0-rc4build346

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-rc4build346
                    
NuGet\Install-Package DryIoc -Version 2.0.0-rc4build346
                    
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-rc4build346" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DryIoc" Version="2.0.0-rc4build346" />
                    
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-rc4build346
                    
#r "nuget: DryIoc, 2.0.0-rc4build346"
                    
#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-rc4build346
                    
#: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-rc4build346&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=DryIoc&version=2.0.0-rc4build346&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 315 10/27/2024
6.0.0-preview-07 349 3/17/2024
5.4.3 75,574 11/12/2023
5.4.2 5,542 10/17/2023
5.4.1 9,851 6/10/2023
5.4.0 3,191 5/1/2023
5.3.4 4,076 3/13/2023
5.3.3 2,204 2/16/2023
5.3.2 1,579 2/9/2023
5.3.1 4,796 11/28/2022
5.3.0 22,918 11/10/2022
5.2.2 15,012 8/23/2022
5.2.1 10,742 8/9/2022
5.2.0 3,293 8/3/2022
5.1.0 85,916 5/20/2022
5.0.2 23,796 5/10/2022
5.0.1 3,003 4/22/2022
5.0.0 4,632 4/13/2022
4.8.8 22,861 3/16/2022
4.8.7 16,710 2/27/2022
4.8.6 19,409 1/7/2022
4.8.5 4,865 12/30/2021
4.8.4 9,765 10/31/2021
4.8.3 5,420 10/20/2021
4.8.2 2,449 10/9/2021
4.8.1 40,282 7/3/2021
4.8.0 10,388 6/4/2021
4.7.8 4,411 5/27/2021
4.7.7 2,908 5/10/2021
4.7.6 9,015 4/21/2021
4.7.5 7,459 4/4/2021
4.7.4 6,526 2/26/2021
4.7.3 3,145 2/9/2021
4.7.2 25,163 1/16/2021
4.7.1 698 1/15/2021
4.7.0 2,258 1/5/2021
4.6.0 4,039 12/10/2020
4.5.2 1,733 12/3/2020
4.5.1 4,340 10/28/2020
4.5.0 4,607 10/12/2020
4.4.1 22,987 9/9/2020
4.4.0 904 9/4/2020
4.3.4 973 9/1/2020
4.3.3 1,365 8/27/2020
4.3.2 13,005 8/15/2020
4.3.1 13,349 8/7/2020
4.3.0 1,475 8/3/2020
4.2.5 1,696 7/20/2020
4.2.4 9,281 7/14/2020
4.2.3 1,270 7/4/2020
4.2.2 922 7/2/2020
4.2.1 8,310 6/8/2020
4.2.0 3,710 5/18/2020
4.1.4 12,376 4/3/2020
4.1.3 1,833 3/27/2020
4.1.2 2,958 3/12/2020
4.1.1 1,613 3/5/2020
4.1.0 5,705 1/20/2020
4.1.0-preview-04 653 1/5/2020
4.1.0-preview-03 749 10/3/2019
4.1.0-preview-02 778 8/25/2019
4.1.0-preview-01 6,602 8/21/2019
4.0.7 654,678 9/4/2019
4.0.6 1,684 8/29/2019
4.0.5 32,141 6/8/2019
4.0.5-preview-01 6,695 6/7/2019
4.0.4 13,684 5/1/2019
4.0.3 11,722 4/10/2019
4.0.2 8,293 3/30/2019
4.0.1 7,038 3/28/2019
4.0.0 30,950 3/4/2019
4.0.0-preview-02 6,784 2/22/2019
4.0.0-preview-01 12,942 12/1/2018
3.1.0-preview-07 7,206 11/20/2018
3.0.2 59,087 7/11/2018
3.0.1 8,293 7/7/2018
3.0.0 8,270 6/24/2018
3.0.0-preview-12 7,112 6/6/2018
3.0.0-preview-11 7,551 3/17/2018
3.0.0-preview-10 7,299 3/13/2018
3.0.0-preview-09 8,724 2/21/2018
3.0.0-preview-08 7,088 2/12/2018
3.0.0-preview-07 7,280 2/9/2018
3.0.0-preview-06 7,278 2/8/2018
3.0.0-preview-05 7,378 2/5/2018
3.0.0-preview-04 7,283 2/1/2018
3.0.0-preview-03 7,198 12/3/2017
3.0.0-preview-02 7,654 11/14/2017
3.0.0-preview-01 7,360 10/1/2017
2.12.10 41,955 4/11/2018
2.12.9 7,851 4/7/2018
2.12.8 8,805 3/13/2018
2.12.7 12,761 1/19/2018
2.12.6 10,135 12/21/2017
2.12.5 21,882 10/30/2017
2.12.4 52,269 10/17/2017
2.12.3 9,430 10/2/2017
2.12.2 8,209 9/17/2017
2.12.1 7,720 9/9/2017
2.12.0 8,931 9/1/2017
2.12.0-preview-01 7,177 8/29/2017
2.11.6 11,563 7/18/2017
2.11.5 7,599 7/12/2017
2.11.4 8,013 6/28/2017
2.11.3 14,432 6/1/2017
2.11.2 7,496 6/1/2017
2.11.1 7,912 5/31/2017
2.11.0 7,591 5/30/2017
2.11.0-preview-02 7,447 3/15/2017
2.11.0-preview-01 7,196 3/10/2017
2.10.7 15,371 5/3/2017
2.10.6 46,706 4/20/2017
2.10.5 7,954 4/4/2017
2.10.4 7,655 3/28/2017
2.10.3 7,696 3/25/2017
2.10.2 13,018 3/14/2017
2.10.1 46,689 2/18/2017
2.10.0 17,183 2/1/2017
2.9.7 9,147 1/12/2017
2.9.6 8,583 12/30/2016
2.9.5 7,585 12/26/2016
2.9.4 8,236 12/10/2016
2.9.3 7,627 12/8/2016
2.9.2 7,628 12/3/2016
2.9.1 9,068 11/19/2016
2.9.0 7,753 11/17/2016
2.8.5 8,436 11/2/2016
2.8.4 7,716 10/28/2016
2.8.3 28,277 10/20/2016
2.8.2 9,762 10/20/2016
2.8.1 7,561 10/19/2016
2.8.0 7,536 10/18/2016
2.8.0-preview-01 7,156 10/13/2016
2.7.1 9,296 9/1/2016
2.7.0 8,025 8/19/2016
2.6.4 10,139 7/29/2016
2.6.3 7,792 7/9/2016
2.6.2 10,536 6/13/2016
2.6.0 8,116 6/10/2016
2.5.1 10,496 6/7/2016
2.5.0 12,900 5/24/2016
2.4.3 8,343 5/7/2016
2.4.2 8,204 4/26/2016
2.4.1 7,678 4/16/2016
2.4.0 8,567 4/14/2016
2.3.0 8,690 3/30/2016
2.2.2 10,866 3/10/2016
2.2.1 7,865 3/8/2016
2.2.0 9,278 2/26/2016
2.1.3 11,365 1/17/2016
2.1.2 8,741 1/15/2016
2.1.1 8,225 1/4/2016
2.1.0 7,987 12/4/2015
2.0.2 7,949 12/1/2015
2.0.1 7,736 11/27/2015
2.0.0 111,794 11/19/2015
2.0.0-rc4build353 7,278 11/18/2015
2.0.0-rc4build352 7,248 11/17/2015
2.0.0-rc4build351 7,281 11/17/2015
2.0.0-rc4build350 7,297 11/17/2015
2.0.0-rc4build349 7,275 11/12/2015
2.0.0-rc4build348 7,266 11/12/2015
2.0.0-rc4build347 7,213 11/12/2015
2.0.0-rc4build346 7,180 11/12/2015
2.0.0-rc4build345 7,223 11/12/2015
2.0.0-rc4build344 7,242 11/7/2015
2.0.0-rc4build343 7,200 11/5/2015
2.0.0-rc4build342 7,277 11/1/2015
2.0.0-rc4build341 7,206 10/29/2015
2.0.0-rc4build340 7,204 11/12/2015
2.0.0-rc4build339 7,231 11/7/2015
2.0.0-rc4build338 7,196 11/5/2015
2.0.0-rc4build337 7,152 11/1/2015
2.0.0-rc4build336 7,237 10/29/2015
2.0.0-rc3build340 7,183 10/26/2015
2.0.0-rc3build339 7,199 10/26/2015
2.0.0-rc3build338 7,166 10/23/2015
2.0.0-rc3build337 7,234 10/20/2015
2.0.0-rc3build336 7,258 10/19/2015
2.0.0-rc3build335 7,257 10/12/2015
2.0.0-rc3build334 7,323 10/10/2015
2.0.0-rc3build333 7,539 10/6/2015
2.0.0-rc3build332 7,281 10/6/2015
2.0.0-rc3build331 7,302 10/1/2015
2.0.0-rc3build330 7,284 10/1/2015
2.0.0-rc3build329 7,290 9/30/2015
2.0.0-rc3build328 7,381 9/26/2015
2.0.0-rc3build327 7,294 9/25/2015
2.0.0-rc3build326 7,283 9/25/2015
2.0.0-rc3build325 7,280 9/25/2015
2.0.0-rc3build324 7,249 9/11/2015
2.0.0-rc3build323 7,252 9/11/2015
2.0.0-rc3build322 7,257 9/11/2015
2.0.0-rc3build321 7,224 9/11/2015
2.0.0-rc3build320 7,247 9/11/2015
2.0.0-rc3build319 7,251 9/8/2015
2.0.0-rc3build318 7,232 9/6/2015
2.0.0-rc3build317 7,279 9/3/2015
2.0.0-rc3build316 7,280 9/2/2015
2.0.0-rc3build315 7,226 8/31/2015
2.0.0-rc3build314 7,266 9/8/2015
2.0.0-rc3build313 7,241 8/29/2015
2.0.0-rc3build312 7,250 8/23/2015
2.0.0-rc3build311 7,259 8/21/2015
2.0.0-rc3build310 7,226 8/18/2015
2.0.0-rc3build309 7,399 8/12/2015
2.0.0-rc3build308 7,561 8/6/2015
2.0.0-rc3build307 7,248 8/23/2015
2.0.0-rc3build306 7,469 8/6/2015
2.0.0-rc3build304 7,444 8/4/2015
2.0.0-rc3build303 7,476 8/6/2015
2.0.0-rc3build302 7,503 8/3/2015
2.0.0-rc3build301 7,432 7/31/2015
2.0.0-rc3build300 7,532 7/28/2015
2.0.0-rc3build299 7,362 7/28/2015
2.0.0-rc3build298 7,332 7/28/2015
2.0.0-rc3build297 7,400 7/31/2015
2.0.0-rc3build296 7,331 7/28/2015
2.0.0-rc2build297 7,281 7/26/2015
2.0.0-rc2build296 7,291 7/26/2015
2.0.0-rc2build295 7,332 7/24/2015
2.0.0-rc2build294 7,308 7/24/2015
2.0.0-rc2build293 7,308 7/26/2015
2.0.0-rc2build292 7,587 7/21/2015
2.0.0-rc2build291 7,291 7/24/2015
2.0.0-rc2build289 7,540 7/21/2015
2.0.0-rc1build371 7,196 1/11/2016
2.0.0-rc1build366 7,241 1/11/2016
2.0.0-rc1build288 7,239 7/4/2015
2.0.0-rc1build287 7,191 6/19/2015
2.0.0-rc1build286 7,542 6/8/2015
2.0.0-rc1build285 7,251 6/4/2015
2.0.0-rc1build284 7,221 6/3/2015
2.0.0-rc1build283 7,491 6/1/2015
2.0.0-rc1build282 7,209 5/29/2015
2.0.0-rc1build281 7,225 5/27/2015
2.0.0-rc1build280 7,174 5/27/2015
2.0.0-rc1build279 7,205 5/21/2015
2.0.0-rc1build278 7,226 5/16/2015
2.0.0-rc1build277 7,217 5/15/2015
2.0.0-rc1build276 7,212 5/21/2015
2.0.0-rc1build275 7,194 5/16/2015
2.0.0-rc1build274 7,443 5/15/2015
2.0.0-rc1build273 7,250 5/15/2015
2.0.0-rc1build272 7,199 5/14/2015
2.0.0-rc1build271 7,245 5/14/2015
2.0.0-rc1build270 7,172 5/13/2015
2.0.0-rc1build269 7,212 5/14/2015
2.0.0-rc1build268 7,246 5/12/2015
2.0.0-rc1build267 7,232 5/10/2015
2.0.0-rc1build266 7,281 5/7/2015
2.0.0-rc1build265 7,196 5/6/2015
2.0.0-rc1build264 7,287 5/5/2015
2.0.0-rc1build263 7,368 5/1/2015
2.0.0-rc1build262 7,448 4/30/2015
2.0.0-rc1build261 7,486 4/29/2015
2.0.0-rc1build260 7,564 4/28/2015
2.0.0-rc1build259 7,348 4/21/2015
2.0.0-rc1build258 7,503 4/29/2015
2.0.0-rc1build255 7,348 4/21/2015
2.0.0-preview256 7,350 4/15/2015
2.0.0-preview255 7,338 4/14/2015
2.0.0-preview254 7,298 4/14/2015
2.0.0-preview253 7,285 4/13/2015
2.0.0-preview252 7,263 4/10/2015
2.0.0-preview251 7,296 4/7/2015
2.0.0-preview250 7,294 4/6/2015
2.0.0-preview249 7,505 4/6/2015
2.0.0-preview248 7,274 4/7/2015
2.0.0-preview247 7,276 4/6/2015
2.0.0-preview246 7,323 4/6/2015
2.0.0-preview245 7,279 4/3/2015
2.0.0-preview244 7,273 4/3/2015
2.0.0-preview243 7,299 4/3/2015
2.0.0-preview242 7,310 4/2/2015
2.0.0-preview241 7,272 3/31/2015
2.0.0-preview240 7,327 3/31/2015
2.0.0-preview239 7,331 3/30/2015
2.0.0-preview238 7,286 3/30/2015
2.0.0-preview237 7,254 3/29/2015
2.0.0-preview236 7,277 3/28/2015
2.0.0-preview235 7,284 3/27/2015
2.0.0-preview234 7,268 3/27/2015
2.0.0-preview233 7,255 3/26/2015
2.0.0-preview232 7,258 3/26/2015
2.0.0-preview231 7,291 3/25/2015
2.0.0-preview230 7,288 3/25/2015
2.0.0-preview229 7,292 3/25/2015
2.0.0-preview228 7,293 3/23/2015
2.0.0-preview227 7,284 3/23/2015
2.0.0-preview226 7,262 3/19/2015
2.0.0-preview225 7,259 3/18/2015
2.0.0-preview224 7,263 3/18/2015
2.0.0-preview223 7,284 3/18/2015
2.0.0-preview222 7,264 3/17/2015
2.0.0-preview221 7,286 3/15/2015
2.0.0-preview220 7,254 3/14/2015
2.0.0-preview219 7,219 3/13/2015
2.0.0-preview218 7,286 3/11/2015
2.0.0-preview217 7,271 3/10/2015
2.0.0-preview216 7,342 3/10/2015
2.0.0-preview215 7,268 3/10/2015
2.0.0-preview214 7,286 3/10/2015
2.0.0-preview213 7,219 3/9/2015
2.0.0-preview212 7,214 3/6/2015
2.0.0-preview211 7,289 3/4/2015
2.0.0-preview210 7,260 3/4/2015
2.0.0-preview209 7,534 3/4/2015
2.0.0-preview208 7,304 3/3/2015
2.0.0-preview207 7,465 3/3/2015
2.0.0-preview206 7,317 3/3/2015
2.0.0-preview205 7,646 3/2/2015
2.0.0-preview204 7,404 3/2/2015
2.0.0-preview203 7,908 2/26/2015
2.0.0-preview202 7,489 2/25/2015
2.0.0-preview201 7,267 2/20/2015
2.0.0-preview200 7,760 2/20/2015
2.0.0-preview199 7,328 2/20/2015
2.0.0-preview198 7,591 2/19/2015
2.0.0-preview197 7,608 2/19/2015
2.0.0-preview196 7,561 2/19/2015
2.0.0-preview195 7,594 2/19/2015
2.0.0-preview194 7,511 2/18/2015
2.0.0-preview193 7,503 2/18/2015
2.0.0-preview192 7,516 2/17/2015
2.0.0-preview191 7,499 2/17/2015
2.0.0-preview190 7,587 2/17/2015
2.0.0-preview189 7,311 2/12/2015
2.0.0-preview188 7,444 2/11/2015
2.0.0-preview187 7,498 2/11/2015
2.0.0-preview186 7,576 2/11/2015
2.0.0-preview185 7,362 2/10/2015
2.0.0-preview184 7,378 2/10/2015
2.0.0-preview183 7,378 2/10/2015
2.0.0-preview182 7,425 2/9/2015
2.0.0-preview181 7,291 2/2/2015
2.0.0-preview180 7,300 2/2/2015
2.0.0-preview179 7,317 1/31/2015
2.0.0-preview178 7,308 1/30/2015
2.0.0-preview177 7,280 1/29/2015
2.0.0-preview176 7,323 1/24/2015
2.0.0-preview175 7,262 1/24/2015
2.0.0-preview174 7,351 1/23/2015
2.0.0-preview173 7,340 1/18/2015
2.0.0-preview172 7,289 1/19/2015
2.0.0-preview171 7,347 1/16/2015
2.0.0-preview170 7,229 1/16/2015
2.0.0-preview169 7,265 1/16/2015
2.0.0-preview168 7,248 1/16/2015
2.0.0-preview167 7,330 1/16/2015
2.0.0-preview166 7,263 1/15/2015
2.0.0-preview165 7,307 1/15/2015
2.0.0-preview164 7,289 1/15/2015
2.0.0-preview163 7,348 1/15/2015
2.0.0-preview162 7,344 1/14/2015
2.0.0-preview161 7,318 1/14/2015
2.0.0-preview160 7,266 1/14/2015
2.0.0-preview159 7,318 1/14/2015
2.0.0-preview158 7,274 1/14/2015
2.0.0-preview157 7,294 1/14/2015
2.0.0-preview156 7,231 1/13/2015
2.0.0-preview155 7,263 1/13/2015
2.0.0-preview154 7,345 1/12/2015
2.0.0-preview153 7,256 1/12/2015
2.0.0-preview152 7,251 1/9/2015
2.0.0-preview151 7,282 1/9/2015
2.0.0-preview150 7,260 1/8/2015
2.0.0-preview148 7,264 1/8/2015
2.0.0-preview147 7,576 1/3/2015
2.0.0-preview146 7,285 1/3/2015
2.0.0-preview145 7,758 12/30/2014
2.0.0-preview144 7,673 12/29/2014
2.0.0-preview143 7,712 12/29/2014
2.0.0-preview142 7,678 12/23/2014
2.0.0-preview141 7,672 12/23/2014
2.0.0-preview140 7,682 12/23/2014
2.0.0-preview139 7,740 12/20/2014
2.0.0-preview138 7,644 12/20/2014
2.0.0-preview137 7,701 12/20/2014
2.0.0-preview136 7,632 12/20/2014
2.0.0-preview135 7,664 12/20/2014
2.0.0-preview133 7,689 12/18/2014
2.0.0-preview132 7,508 12/15/2014
2.0.0-preview131 7,511 12/14/2014
2.0.0-preview130 7,520 12/12/2014
2.0.0-preview129 7,531 12/12/2014
2.0.0-preview128 7,481 12/11/2014
2.0.0-preview127 7,522 12/10/2014
2.0.0-preview126 7,501 12/10/2014
2.0.0-preview125 7,499 12/8/2014
2.0.0-preview124 7,567 12/8/2014
2.0.0-preview123 7,527 12/7/2014
2.0.0-preview119 7,492 11/24/2014
2.0.0-preview118 7,445 11/21/2014
2.0.0-preview116 7,749 11/13/2014
2.0.0-preview115 7,520 11/6/2014
2.0.0-preview114 7,756 11/6/2014
2.0.0-preview113 7,550 11/5/2014
2.0.0-preview112 7,520 11/5/2014
2.0.0-preview110 7,728 11/5/2014
2.0.0-preview109 7,780 11/4/2014
2.0.0-preview108 7,643 10/31/2014
2.0.0-preview107 7,813 10/31/2014
2.0.0-preview105 7,902 10/31/2014
2.0.0-preview104 7,263 10/29/2014
2.0.0-preview103 7,259 10/27/2014
2.0.0-preview102 7,268 10/27/2014
2.0.0-preview101 7,282 10/24/2014
2.0.0-beta258 7,355 4/21/2015
2.0.0-beta254 7,402 4/20/2015
1.4.1 13,365 10/9/2014
1.4.0 8,294 9/10/2014
1.3.1 7,792 8/18/2014
1.3.0 8,363 7/16/2014
1.2.2 7,818 7/2/2014
1.2.1 7,689 6/30/2014
1.2.0 8,491 1/9/2014
1.1.1 7,709 12/26/2013
1.1.0 7,636 12/26/2013
1.0.11 9,198 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.