# Overview

{% hint style="danger" %}
**Important:** Any Project or Nuget package you are adding to extend the CMS, must have a name that starts with **ZauberCMS.** or it won't get picked up by the AssemblyProvider / ExtensionManager. For example, _ZauberCMS.MyProjectName_
{% endhint %}

I have tried to make ZauberCMS as extendable as possible. The main functionality is driven from the ExtensionManager. The ExtensionManager allows you to find instances of types and use them all over the site. If you inject the ExtensionManager you can use this for your own projects.

```csharp
// Injecting the ExtensionManager into a Component
[Inject] public ExtensionManager ExtensionManager { get; set; } = default!;
```

And then you would use it like so

```csharp
// Note the true is passed in, to cache this call to speed up next calls
var instances = ExtensionManager.GetInstances<IContentProperty>(true);
```
