filling complex dataset by multiple DA's

We have got a dataset with (for now) three temp-tables: ttPolicy, ttObject, ttCoverage. Where ttPolicy is the top-level-buffer, ttObject is a child of ttPolicy and ttCoverage is a child of ttObject.
This dataset is filled from 9 db-tables (POLIS, WPOLIS, HPOLIS, history the old way) so the code to fill it was becoming quit complex.
We decided to split the filling of the temp-tables so each temp-table would be filled by it's own DA. All DA's work on the same dataset, but all fill a different part.
To accomplish this we implemented an extra property in dataaccess LoadBuffers in which you can provide a comma-separated list which buffers the DA should fill.

The bePolicy calls beObject:fetchdata and beCoverage:fetchdata, with dsPolicy as parameter.
daObject is working on dsPolicy, but LoadBuffers is "ttObject".
daCoverage is working on dsPolicy, but LoadBuffers is "ttCoverage".

In dataaccess.fillDataset the following code is added.

if LoadBuffers = '':U
then
dsDataSet:fill() no-error.
else do:
do iBuffer = 1 to dsDataset:num-buffers:
if can-do(LoadBuffers,dsDataSet:get-buffer-handle(iBuffer):name)
then
dsDataSet:get-buffer-handle(iBuffer):fill() no-error.
end.
end.

both beObect and beCoverage execute loadData("APPEND") when executing loadData().