public function setDataWithKeys(Array $keys, $value) {
    $data =& $this->data;
    
    if ($keys === array()) {
      if (!is_array($value)) {
        throw new DataInputException('Wenn $keys leer ist, darf value nur ein array sein!');
      }
      
      return $data = $value;
    }
    
    $lastKey = array_pop($keys);
    foreach ($keys as $key) {
      if (!array_key_exists($key,$data)) {
        $data[$key] = array();
      }
      $data =& $data[$key];
    }
    $data[$lastKey] = $value;
    
    return $data;
  }