add Filter Design Pattern