scala.concurrent.Future has scala.util.Try already baked into it. We don't need to duplicate that. Instead we'll handle errors in the recover methods (they exist for Try[A] and for Future[A], which is perfect!)