···177177# included at users who can fix things with nix.
178178den.aspects.tux.includes = [ nix-allowed ];
179179```
180180+181181+#### Example: An impermanence class
182182+183183+The following example, creates a forwarding class that is propagated only
184184+when `environment.persistance` option is available in the host (the impermanence module was imported in host)
185185+186186+One cool thing about these custom classes is that aspects can simply define
187187+settings at the new class, without having to worry if the options they depend or
188188+some capability is enabled.
189189+190190+The froward-guard itself is reponsible checking in only one place, instead of having `mkIf` in a lot of places.
191191+192192+```nix
193193+# Custom `persys` forwards config into nixos.environment.persistance."/nix/persist/system"
194194+# only if environment.persistance option is present.
195195+persys = { class, aspect-chain }: den._.forward {
196196+ each = lib.singleton true;
197197+ fromClass = _: "persys";
198198+ intoClass = _: class;
199199+ intoPath = _: [ "environment" "persistance" "/nix/persist/system" ];
200200+ fromAspect = _: lib.head aspect-chain;
201201+ guard = { options, ... }@osArgs: options ? environment.persistance;
202202+};
203203+204204+den.hosts.my-laptop.includes = [ persys ];
205205+206206+# becomes nixos.environment.persistance."/nix/persist/system".hideMounts = true;
207207+den.aspects.my-laptop.persys.hideMounts = true;
208208+```