diff --git a/projects/common/models/section.ts b/projects/common/models/section.ts
index 38364c590a781efff555f456278f5a11ce9d7b42..7680bf55bc73e5ed4d619d7973bd6b29dbdc1fd1 100644
--- a/projects/common/models/section.ts
+++ b/projects/common/models/section.ts
@@ -39,10 +39,7 @@ export class Section {
     if (sanitizedBlueprint.visibilityDelay) this.visibilityDelay = sanitizedBlueprint.visibilityDelay;
     if (sanitizedBlueprint.animatedVisibility) this.animatedVisibility = sanitizedBlueprint.animatedVisibility;
     if (sanitizedBlueprint.enableReHide) this.enableReHide = sanitizedBlueprint.enableReHide;
-    if (sanitizedBlueprint.visibilityRules) {
-      this.visibilityRules = sanitizedBlueprint.visibilityRules
-        .map(rule => new VisibilityRule(rule.id, rule.operator, rule.value));
-    }
+    if (sanitizedBlueprint.visibilityRules) this.visibilityRules = sanitizedBlueprint.visibilityRules;
     this.elements =
       sanitizedBlueprint.elements?.map(element => ElementFactory.createElement({
         ...element,
diff --git a/projects/common/models/visibility-rule.ts b/projects/common/models/visibility-rule.ts
index 1a1856d9e8fe5d62638c9382aa53d2ddb9716f36..d9c85e6c0f90549835a332f5a3da05e7ebaaf1c0 100644
--- a/projects/common/models/visibility-rule.ts
+++ b/projects/common/models/visibility-rule.ts
@@ -1,15 +1,8 @@
-export class VisibilityRule {
+export interface VisibilityRule {
   id: string;
   operator: Operator;
   value: string;
-
-  static operators = ['=', '!=', '<', '<=', '>', '>='];
-
-  constructor(id: string, operator: Operator, value: string) {
-    this.id = id;
-    this.operator = operator;
-    this.value = value;
-  }
 }
 
-export type Operator = typeof VisibilityRule.operators[number];
+export const VisibilityRuleOperators = ['=', '!=', '<', '<=', '>', '>='];
+type Operator = typeof VisibilityRuleOperators[number];
diff --git a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html
index 978c61870158908fdebb12fc0ae101b9fc29be6e..468d95a6bb05a1a6070308a7ba00dd08fccbbbc6 100644
--- a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html
+++ b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html
@@ -14,7 +14,7 @@
     <mat-label>{{'section.operator' | translate}}</mat-label>
     <mat-select [(ngModel)]="visibilityRule.operator"
                 (ngModelChange)="visibilityRuleChange.emit(visibilityRule)">
-      <mat-option *ngFor="let operator of VisibilityRule.operators"
+      <mat-option *ngFor="let operator of VisibilityRuleOperators"
                   [value]="operator">
         {{operator}}
       </mat-option>
diff --git a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts
index 24547874b80fcfc6d8b2414567f889f4c64ad5aa..10df8b6e98fb18eb52540d4db56f9c65ffcf55d3 100644
--- a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts
+++ b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts
@@ -1,7 +1,7 @@
 import {
   Component, EventEmitter, Input, Output
 } from '@angular/core';
-import { VisibilityRule } from 'common/models/visibility-rule';
+import { VisibilityRule, VisibilityRuleOperators } from 'common/models/visibility-rule';
 
 @Component({
   selector: 'aspect-visibility-rule-editor',
@@ -12,5 +12,5 @@ export class VisibilityRuleEditorComponent {
   @Input() visibilityRule!: VisibilityRule;
 
   @Output() visibilityRuleChange = new EventEmitter<VisibilityRule>();
-  protected readonly VisibilityRule = VisibilityRule;
+  protected readonly VisibilityRuleOperators = VisibilityRuleOperators;
 }
diff --git a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts
index 4775b0725885aae0986d515169c4467ac224f306..fd34cbfc2c9ef1ae42b18444be77abafddec0103 100644
--- a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts
+++ b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts
@@ -30,7 +30,7 @@ export class VisibilityRulesDialogComponent {
   }
 
   addVisibilityRule(): void {
-    this.visibilityRules.push(new VisibilityRule('', '=', ''));
+    this.visibilityRules.push({ id: '', operator: '=', value: '' });
   }
 
   deleteVisibilityRule(index: number): void {