Refactor to follow FilterOptions concept