Make filter async, draft for #2
(not fully tested!)