reimplemented array