added part of an array implementation