public function flattenResult()
    {
        $output = [];

        $vars = (array)$this;

        foreach ($vars as $field => $value) {
            //Trim off the protected items that come in as \0*\0_name
            if (ord($field[0]) == 0) continue;

            if ($value instanceof Parameter) {
                $output[$field] = $value->flattenResult();
            } else {
                $output[$field] = $value;
            }
        }

        return $output;
    }