Refactor FilterContext

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>