extra constructor for array reuse