recursive with case easier than while