public function offsetGet($key)
 {
     if (!parent::offsetExists($key)) {
         $this->offsetSet($key, $this->defaultValue);
     }
     return parent::offsetGet($key);
 }
 public function offsetUnset($key)
 {
     $key = $this->transformKey($key);
     parent::offsetUnset($this->keys[$key]);
     unset($this->keys[$key]);
 }