I see the point. What about passing a job instance to the constructors of the helpers instead of withXmlActions and the arguments? Then the helpers can have statically typed access to the arguments through the job instance (your comment below) and the helpers could still access the withXmlAction through a property getter. But this would change all helpers.