---
title: "reference-book/6-wrappers/wrappers"
source: reference-book
version: genesis-0-1-0
id: reference-book/6-wrappers/wrappers
canonical: /docs/reference-book/6-wrappers/wrappers
---


As we discovered so far, the concept of vibration is the manifestation of the existence in simorg. Things exist because they can vibrate.

Vibration itself is also limited to the shell in which it is vibrating. So it means a vibration also needs a shell or space to vibrate and manifest itself. The concepts of
shell and existance are tied together in a way that one without the other doesn't have a meaningful impact and is just an abstract entity.

So far we saw a series of shells, each having its own relation with vibration. For example, a <<<gate>>> is affecting the outcome in a certain way, or a <<<dataflow>>> shell which is receiving a vibration and sometimes changing it and passing it through.

As we can see, the concept of wrapping and limiting the vibration is a main characteristic of a shell.

A <<<wrapper>>> shell is a general purpose shell that can act as a pure wrapper when we want to limit the scope of our vibrations. Simorg wrapper shells are identical to the concept of <<<scope>>> in **CPL**s. 

Imagine you are in a room listening to music. While your music player is a source of vibration, the room is acting as a Shell, preventing the sound leaving the room. Of course, we can control if a shell needs to receive vibrations from outside or allow some vibrations to exit it and be received outside.

We use curly brace pairs <<<{}>>> to create a wrapper shell.

Simorg provides three types of wrappers,

- An <<<isolator>>> wrapper shell.
- A <<<conditional>>> wrapper shell.
- An <<<io>>> wrapper shell.

Let's see how each one of them works.
