recurrent function added