add grant check point
add a filter factory
rename function