iterator, collection, and list interfaces. also implemented those interfaces for array_list