singled out iterator interface
reduce the middle layers to access data