One of the design principles in nspectre is to minimise dependencies. This principle is applied at both project level and class level. At project level this means having as few external dependencies as possible (as of version 0.7.1 this means the .NET runtime and the Ader Template Engine.) At class level this means dependency injection. Dependency injection has made nspectre very testable – and testability is another design principle.