add a timeout.
the filter should be a private method.