variation of previous using promises all the way down