caius Refactor into recursive version
Latest commit 0373142 Jan 10, 2016