tailrec annotation on the browse function to make sure its optimized