To me it seems more natural to pass all the required arguments in to the constructor like:

```C
ert_workflow_list_handler_data_type * ert_workflow_list_handler_alloc(ert_workflow , self)
```
That way the ert_workflow_list_handler can be (nearly) immutable.