refactor async reward creation