denodeify that doesn't suck