uses filters on input/ouput