array implemented