requestHandler now uses promises