refactored filters to use a base module, added time measurement