add interface Iquery
new filter object & refactor