test and impl po iterator