found a bug, pass the previous results to the next match function in the chain
Dropped FilterMessage, replaced with Query struct