updated array constructor