add filter promise_fn