array input construct