could use async.apply here hm