updated Array implementation