Use reduce with a recursive callback!