some progress on extends recursion