Restructuring to do recursive make