redo with array