Refactor the row filter encoders and how recursion happens