only recurse on constrs