Complete rewrite using filter-collections. Quite nice now if a little bit buggy