some refactor to put shared filters