add fn topdownBFS_origin