the key thing is to manipulate initial, and when the recursion stops,
reuturn the initail value

or in the standard answer, the value variable
basic api