catalogs now take FilterSet instead of KeyFilter*, this enforces the type constraints through Filterable type class