iterator and composite