Rewrite recursive functions to avoid re-fetch

Bump version, update read me to reflect changes.