better use the iterator