folding and start of cleaner, correct recursion