thenApply() : MAP() Takes in the data and returns data. (data) => modifyData( data ) thenAccept() : EACH() Has access to the data and returns nothing (data) => runthis() thenRun() : EACH() without data Just runs the runnable passed into it, has no access to the data. () => runthis()