implemented future.ensuring