implement zip as unfold