string & recursion