<p>This method recursively calls itself as the last statement of the method
(Tail Recursion). This method can be easily refactored into a simple loop, which
will make it more performant, and reduce the stack size requirements.</p>