Creating structure with dynamic size

Is it possible to define structure that can have variable size of elements?
It looks possible at least for small amount of variation, but if there is large amount of variation in number of elements, how can it be made?
Below is a sample code:
defpolg.m (999 Bytes)
I guess the structure must be made first and later on it can be appended any number of the hole there.
Below code could not fully operate:
defpolg2.m (747 Bytes)
This could work better:
defpolg3.m (795 Bytes)
But I am still suspicious about finding the right method to fill more holes there into the polygon.
(or removing them).
It looks I might had got it working at 4th case:
defpolg4.m (691 Bytes)
I think the initial definition must be {{[]}} rather than {{}} or it will fail…