small case -> recursion tricky pattern