Could you please describe scenario when items are not children? In fillColumns you call column.append(item) for each item. So they are children there.

I think this is the easiest way to iterate over items in each column, since the fillColumns loop won't work any more (see comment from above).