only map types which have generics
simplify API
run filter during finalization