added recursive function