use better array initialize