use results instead of promises