should be NewFuncFilter