# Namespaces

## Introduction

Instead of working with file paths directly, an [environment](https://docs.elentra.org/ejs/1.4/guide/environments) allows you to work with **namespaces** which are mapped to specific directories.

With namespaces, [modules](https://docs.elentra.org/ejs/1.4/guide/modules) and entire applications can be fully self-contained, allowing them to be moved within a filesystem without breaking any of their internal dependencies.

Additionally, namespaces allow developers to use an absolute/global syntax to reference any root namespace defined in the [environment configuration](https://docs.elentra.org/ejs/1.4/guide/environments/configuration) (such as the Module, Layout, and Plugin namespaces).  While these namespaces may appear to be absolute/global, they are actually scoped to the environment itself.
