filter functions should return filtered arguments, not the return values of inner filter functions