public function __construct($name, $record, FieldList $fields = null)
 {
     $this->name = $name;
     $this->record = $record;
     if (!$fields) {
         if ($this->record->hasMethod('getHasOneCMSFields')) {
             $fields = $this->record->getHasOneCMSFields($name);
         } else {
             $fields = $this->record->getCMSFields();
         }
         if ($fields) {
             $fields = $fields->dataFields();
         }
     }
     parent::__construct($fields);
 }