Add composite pattern with composite iterator