Added recursive traverse guard clause