text: function createComputerHierarchy() {
      class ComputerPart {
          constructor(manufacturer) {
              if (new.target === ComputerPart) {
                  throw new Error("Cannot be instantiated!");
              }
  
              this.manufacturer = manufacturer;
          }
      }
  
      class Keyboard extends ComputerPart {
          constructor(manufacturer, responseTime) {
              super(manufacturer);
              this.responseTime = Number(responseTime);
          }
      }
  
      class Monitor extends ComputerPart {
          constructor(manufacturer, width, height) {
              super(manufacturer);
              this.width = Number(width);
              this.height = Number(height);
          }
      }
  
      class Battery extends ComputerPart {
          constructor(manufacturer, expectedLife) {
              super(manufacturer);
              this.expectedLife = Number(expectedLife);
          }
      }
  
      class Computer extends ComputerPart {
  
  
          constructor(manufacturer, processorSpeed, ram, hardDiskSpace) {
              if (new.target === Computer) {
                  throw new Error("Cannot be instantiated!");
              }
  
              super(manufacturer);
              this.processorSpeed = Number(processorSpeed);
              this.ram = Number(ram);
              this.hardDiskSpace = Number(hardDiskSpace);
          }
      }
      
      class Laptop extends Computer {
          constructor(manufacturer, processorSpeed, ram, hardDiskSpace,weight,color,battery) {
              super(manufacturer, processorSpeed, ram, hardDiskSpace);
              this.weight = Number(weight);
              this.color = color;
              this.battery = battery;
          }
  
          get battery() {
              return this._battery;
          }
  
          set battery(value) {
              if(value instanceof Battery == false) {
                  throw new TypeError('Should be an instance of Battery!');
              }
  
              this._battery = value;
          }
  
      }
  
      class Desktop extends Computer {
          constructor(manufacturer,processorSpeed, ram, hardDiskSpace,keyboard,monitor) {
              super(manufacturer,processorSpeed, ram, hardDiskSpace);
              this.keyboard = keyboard;
              this.monitor = monitor;
          }
  
          get keyboard() {
              return this._keyboard;
          }
  
          set keyboard(value) {
              if(value instanceof Keyboard == false) {
                  throw new TypeError('Should be an instance of Keyboard!')
              }
              this._keyboard = value;
          }
  
          get monitor() {
              return this._monitor;
          }
  
          set monitor(value) {
              if(value instanceof Monitor == false) {
                  throw new TypeError('Should be an instance of Monitor!')
              }
              this._monitor = value;
          }
      }
  
      return {
          Keyboard,
          Monitor,
          Battery,
          Computer,
          Laptop,
          Desktop
      }
  }   