re: recursion, could you add a: ```rust fn do_something(&mut self) -> Result<...> { self.check_and_repair_if_necessary().await?; } ``` everywhere?