struct nodes (with add function) and nodes_to_structnodes