add WriteFuture support