recursive way, large cases passed