# Glossary of Terms **Assembly** An assembly is a file that is automatically generated by the compiler upon successful compilation of every . NET application. It can be either a Dynamic Link Library or an executable file. It is generated only once for an application and upon each subsequent compilation the assembly gets updated. **Device** A base class, defined in the PepperDash.Core library (`PepperDash.Core.Device`). It can represent a physical device, or a virtual device or behaviour. Generally, most new classes defined in the Essentials ecosystem should derive from Device. **DeviceManager** A static class (`PepperDash.Core.Essentials.DeviceManager`) that contains an unordered collection of Devices. Devices are added/registered to the DeviceManager and later can be retrieved as references by Key. **Essentials Application** A Crestron SIMPL# Pro application that is made up of the Essentials Framework and any optionally any number of Essentials Plugins **Essentials Framework** The collection of core libraries that make up the framework **Essentials Plugins** SIMPL# Pro libraries that reference the Essentials Framework and are loaded at runtime to add or extend functionality **IKeyed** An important interface defined in PepperDash.Core that requires a string property named Key, whose value must be unique. **PepperDash.Core** A SIMPL# utility library referenced by Essentials Framework.