(merge MappingFilter from t-oster)