abstract iteration and parent/child accessing