I think the variable container should only get what it needs. A full 'struct service' is passing in way to many unrelated stuff and breaks encapsulation.

I think we should have a struct defined in variable-container.h that describes what it needs (variable names, eventing etc.), and have that struct then stored in the service descriptor. This could be a followup change, but please add a TODO for this.