add completablefutures and lifecycle tests