update iterator pattern.