ENH: address discussion + remove unnecessary recursion in helper