https://medium.com/programming-essentials/how-to-do-a-group-by-on-a-single-property-using-the-array-reduce-method-37b34458eb7d