list works, the grouping maybe not perfect