public function withStructure(callable $structureDefinitionCallback) : TableViewsDefiner
    {
        $definition = new GroupedTableDefinition($this->data);

        $structureDefinitionCallback($definition);

        return new TableViewsDefiner($this->name, $this->callback, new GroupedTableDataSourceAdapter(
                $definition->finalize()
        ));
    }