public function setTDParam($field, $path, $value)
    {
        // if value is null, then do nothing
        if ($value === null) {
            return;
        }

        // adds a parameter. nested ones can be specified like 'style/color'
        $path = explode('/', $path);
        $current_position = &$this->tdparam[$this->getCurrentIndex()][$field];
        if (!is_array($current_position)) {
            $current_position = array();
        }

        foreach ($path as $part) {
            if (array_key_exists($part, $current_position)) {
                $current_position = &$current_position[$part];
            } else {
                $current_position[$part] = array();
                $current_position = &$current_position[$part];
            }
        }

        $current_position = $value;
    }