implement promise based series
pass key to pred and accept a context argument