refactor vector, add class iterator.