recursive() builder style.