use java 8 composable futures