add & implement recursion edition of 2.7