factor out new-child parse