redo as Array#product