I've removed the dependency on .try in the new recursive implementation.