I got an MBA from Harvard, but I still couldn't get a product manager job. Having a degree is not that important, but you need to learn the real skills, bro. There's a big gap between a consultant and a product manager, but no worries. I can tell you what kind of skills that you need to learn to make the smooth transition. Recently, several my students transitioned from a consultant and MBA background into offers in the fan company. So what kind of management skills do they learn to make the smooth transition? In this video, I'm shared with you the eight skills you need to learn to become a product manager from a business background. Hey guys, this is Dr. Nancy Lee, a director product from drnancyd.com. I help people transition from worker B to a product manager and business leader. If you want to know the most effective way to become a product manager and get a job very quickly, feel free to subscribe to this channel and turn on the red bell button so it will be notified every time when I post a new video every Wednesday. If you like any of my today's tips, feel free to hit the like button and share so that more people will discover this amazing content. So first of all, let's look into what you need to gain as a consultant and business background such as MBA to transition into product management. Skill number one, technical acumen. People heard of business acumen before, so what is technical acumen? Technical acumen is the skills you need to master to be able to communicate and understand the engineering concept. For example, as people coming from consulting and MBA background, you may not know how to code, but you need to know the basic concept in terms of what is API, what is STK, what is AI, what is blockchain and all those key fundamental technology you need to get to know so that you are able to show that you have interest in technology. On top of that, I also recommend all of you guys to take some entry-level software architecture classes and there are many free or very cheap classes on LinkedIn and other places. What you need to know from those classes is, in a high level, how does software engineering systems work, what are the different cloud and database compute systems, where is a layer of AI sitting, how does system one integrate with the other system. And to be honest, it's not that difficult if you pay close attention into the high-level systems diagram and systems engineering. I prepared the list of recommended classes I believe all of you guys need to take as entry-level classes for you to get to know this basic engineering concept. Feel free to click the link at the description of the video where you can see all the list of recommended classes by Dr. Nancy Lee. Another thing you need to learn to build technical acumen is to speak the language of designers and engineers. One of the best ways to speak their language is to build a product portfolio by working with them through your side project. And in your product portfolio, you can directly work on some kind of interesting new ideas you can work on with engineers. And some of those hack songs are available now ever since virtual, you can join those hack songs and work with engineers to build some new ideas, get to know them and figure out how do they work together as well. If you also want to learn what's the best way to build a product portfolio, I highly recommend this video. This will increase your interview and resume success rate significantly. Now, besides the hack song, there are 13 different kinds of projects you can do. I also have a cheat sheet where you guys can directly download and check out what are the different kinds of 13 projects you can do to build a product portfolio and start to learn the language of software engineers and designers. Scale number two is write requirements. There are five different kinds of requirements, but in the high level, as a product manager, we write very detailed requirements and user stories. Their customer facing business requirements, I believe all the consultants and MBAs knows how to write business requirements. But I also recommend all of you guys to learn different kinds of functional requirements, technical requirements, performance requirements. There are so many different types of requirements you guys need to write once you start to get to work on your own product so that engineers will be able to design the right product for you. What are the different kind of requirements? Feel free to check out the other video I made for you. And today I'm just going to give you a quick summary about different kinds of requirements. I've seen lots of people try to write requirements, but to be honest, those requirements you guys have written is not very specific and it's not very easy for engineers to digest. You can write some requirements in one or two sentences, but engineer can come out with different designs. So therefore I recommend you very specific and concise about your requirement. Skill number three is have customer empathy and customer interview skills. I know majority of the consultant MBAs, you guys are very good at making the strategies and PowerPoint presentations. But once we dive into your strategies, how did you get those results? You may only talk to a few people and come out with grand vision, five year plan. To be honest, as a product manager, we work reversely. We use an agile approach. We want to understand what is a pain point? Why they make such a decision? And on top of that, how can we start to help them solve problems today? And we will do AB testing, rolling out MEPs, a different kind of smaller set for customers to start to solve their problems and also test out our product idea. Therefore, I recommend consultant and MBA start to build customer empathy, to wear the shoes of customers, learn those pain point and start to contact customer interviews as well. Of course, a specific way to do customer interview. I recommend all of you guys to use the right approach to do customer interview. If you want me to make a specific video teaching you how to do customer interview, please comment towards the link down below. So I know there's a huge demand so that I can make a separate video for all of you guys. Skill number four is execution skills. This is very specific to consultant and MBA students. I know 90% of consultants only do certain section of the product or project and you never watch it end to end. But this is critical for product managers because we need to see a product from concept to execution. So I recommend all of you guys start to figure out in your current experience what kind of product you have built, which is one side of product management, but you're missing the other side such as GTN or engineering facing type of project. So therefore I will focus on the part you do not know. Now you may ask, what is the end to end product management cycle? And you can check out this video. I talk in details about different type of roles and responsibilities of product managers and in different stages of developing a product. So watch the video and understand what product execution process you're missing and come up with those different product and project experience that can help you to fulfill the entire experience. If you like any of my tips so far, I really appreciate you hit the like button and share this video because more people need to see this awesome organic content. Now let's also look into the transferable skill set that consultant and MBA students have and how can we use it for product management. So skills number five is the stakeholder management skill. As a consultant or MBA in general, you should have done this before to get alignment among different kind of stakeholders. As a product manager, we need to sell our product vision and align all the missions among different department. So this kind of stakeholder management skills is much to have and also very transferable in this business domain as well. Last time I interviewed Crystal, my friend who successfully transitioned from consultant into product management by building her own roadmap. So I recommend all of you guys figure out what's your own way to define what kind of roadmap you can use to leverage your existing transferable skills to transition into product management as well. So you can check out this video and learn from her. Scale number six, presentation and communication skills. And these are fundamental to be successful in all the jobs to be honest. And it's also critical important for product management career paths. As a product manager, when we go to the third part of the product management cycle, which is launching your product, and we're going to design a GTM, which is go to market strategy, and then you will start to sell your product to your end customers, to your early adopters. So in that case, we need to present in conferences, present in different kind of early adopters and stakeholders as well. So those kind of presentation skills are very critical. And on the other side, as a consultant, this is what you do all the time. You present to executives, trying to get that by end and they pay you millions of dollars for one month of work as a joke. So the same skills that you do for consulting project can be directly transferable into product management job as well. Whenever I talk about public speaking, communication skills, people always ask me this question. Nancy, do you have any courses you recommend to improve your public speaking skills? So I made a separate video talk about how to improve your English public speaking skills. In this video, you can see the description of the video with all the recommended courses as well. Scale number seven, the benchmarking and comparative analysis skills. As a product manager, as well as a consultant MBA, it's very likely you'll be asked to understand what are the different alternative solutions in this market? What are the competitors doing? What's your value proposition? What's your competitive strengths compared with your competitors? All of this are fundamental is also very critical at the beginning of product management stage, which is ideation stage. Just when we come out with product ideas, so consulting can directly to leverage their market research skills into the product management field as well. So that we can come up with the best product strategy and win the market. Scale number eight, which is data analytics and the visualization skills. So those are very critical especially for the B2C type of companies. You will have millions of consumer data. So you need to analyze to drive the customer insight from those massive data. You also need to create the data very quickly and understand what is the next decision you need to make regarding the product features and how to launch your product as well. And there are several tools I recommend all the entry-level product managers to master, such as SQL or Excel. Those are fundamental to process large amount of customer data. If you work in like B2B type environment, you still process customer data, but the volume is slightly smaller, but you still should be able to see customer feedback and customer usage data to understand and inform your product decision. If you want to learn how to quickly transition from a consultant or MBA or business background into product management, you should check out this free training where I teach you how my student quickly got like three offers last week and four offers this week into like TikTok, Facebook and Amazon, Microsoft. And you will learn lots of insider information regarding how to build a product portfolio and how to make transferable skillset to get into product management. I'm looking forward to see you in those free training as well. If you're getting ready for product manager interview, I recommend all of you guys to check out the playlist of product manager interview questions and answers. I wish all of you guys good luck and get offered very quickly. Please make sure you like and subscribe to this channel. I'm going to see you next time. This is Dr. Nia CD. Bye.


The Equitable Life Assurance Society presents, this is your FBI. This is your FBI, the official broadcast from the files of the Federal Bureau of Investigation. Presented as a public service by the Equitable Life Assurance Society of the United States and the Equitable Society's representative in your community. If you are a homeowner or a prospective home buyer, tonight may be an important night. Tonight, the Equitable Society has an interesting message for you about America's finest plan for home ownership, the Equitable Assured Home Ownership Plan. This is one of the Equitable Society's most worthwhile services, a money-saving home-saving plan because it combines a low-interest rate mortgage with special life insurance to protect the home. So listen carefully, 14 minutes from now for full details on the Equitable Society's Assured Home Ownership Plan. Tonight's FBI file, The Curious Prospectors. For those who read their morning papers and shrug their shoulders when they see a story about escaped convicts or a daring crime, just because that crime did not happen very close to where they live. What they don't realize and what your FBI constantly strives to impress upon everyone is that any crime anywhere in the nation affects you, whether you live next door to the criminal or 3,000 miles away. It affects you because that criminal has attempted to break a law and escape unpunished. And if he should be successful, it would make it that much easier for the next criminal to do the same thing. Crime is an epidemic, and unless every citizen is aware of his stake in the war against it, unless every citizen makes up his mind that this is his war, then progress in combating it will be all but impossible. It takes no great effort to understand what that would mean. What a defeat in fighting the crime wave would do to every institution in the land, every institution and every person with no exceptions. Tonight's file opens in a general store in a small town in one of our western states. Two men, unshaven and dust-covered, have just entered. The proprietor greets them. Something I can do for you, gents? Yeah. Yeah, we want some help. What kind? Well, we got a map here, and we'd like to find out how to get up into this section. Or up on Tomorrow Hill, eh? That's not what it's marked on the map. No, but we call it Tomorrow Hill because the flowers bloom up there a day before they do any place else. Well, you men strange around here? Uh-huh. Just got into town. We're not going to be staying very long. Now, look, this map don't show any road up to that place. The map's right.  Mm-hmm. Well, that's as far as the road goes. From that roadhead, it's about six miles to where you've got marked. How do we get up there? Horses. If you go and huntin', I suggest this spot over here. We're not going huntin', mister. We're looking for gold. Oh. We'll need some supplies and horses. You'll need a guide if you're strangers. We don't need no guide. All we want is for you to tell us away. Well, when do you figure I'm goin' up there? Today. Well, if you can wait, I'd advise it. Why? There's a bad brush fire on the other side of tomorrow Hill. They're just about gettin' it under control. We'll take our chances. Okay. How long you figure I'm staying up there? Why? Just want to make sure you take along enough supplies. Oh, fix us up about ten days' worth. You figure I'm finin' that gold real quick? Maybe we will. Well, you fellas run along and come back here in an hour. I'll have your packs all made up at that time and then horses. Okay. Come on. Let's go get some coffee in that diner. I'm hungry. Oh. Everybody looks for gold. That afternoon in the nearby FBI field office, Special Agent Taylor approaches the desk of Agent Gene Butler. Gene, have you finished that report in the Wilson case? I just sent it through, Jim. Did you want to see it? No, I was asking because we've got something that just came in that's quite similar. More escaped prisoners? Yes. These three broke out of the Blainville County jail a couple of hours ago. Probably got out with a nail file. Did you ever see that prison? No, but I was about to when this message came through. We had a detainer on all three of them. Wow. One of them had already been apprehended and man named Williams. He was found on the outskirts of Blainville with a bad bullet wound. Where is he now? He's in the hospital. He's unconscious but alive. Before he passed out, he said that the other two men who escaped with him, Pete Shelby and a stubby Lucas, double-crossed him. That doesn't sound logical, Jim. Why would they work and escape with him and then shoot him? Oh, I checked on that. Williams and Lucas committed a payroll robbery together. A few days after the robbery, they were apprehended and convicted. Yes. But the loot from the job was never recovered. Williams claims that they were on their way to get it. Oh. He says he drew a map of the area where the money is buried. When he finished the map, Selby shot him and took the map. Was Williams able to tell where they were headed? Yes, he said they were going first to a town called Hamilton. That's one I never heard of. I looked it up. It's a little place in the foothills of the mountains. They're not going to be easy to find if they're headed up into those mountains, Jim. Yeah, I know. Well, I think the first thing to do is check with the Hamilton police, find out if either Shelby or Lucas has been around town. You want me to put the request through? Yes, will you, Gene? I'll get out of the file room and check through the records. Easy, huh? Look, I don't like riding these horses any better than you do. Easy, baby. The sooner we get there, the sooner we get out. Yeah, yeah, I know. You and William stash the dough way up here, anyway. They chased us up here. We knew we were going to get caught, so we buried it. I wonder how he is. Yeah. He should be dead. I still don't know why you shot him. Just don't try to make it a one-way peak. There wouldn't be no point in that. Easy, baby. You're the only guy who knows where the dough is buried. I mean, after we get the dough. Well, let's get the dough first. Hey, do you smell that? Something's burning. Well, I do. The guy in the store, they said there was a fire up here, didn't he? Ah, he said it was way over on the other side of the mountain. Could be coming this way? Well, stop worrying about everything, will you? Maybe it's good for me. Maybe if Williams had worried, he'd be here now. I'm going to keep on worrying until I'm out of here with that dough. I just got a call from the marshal at Hamilton. Shelby and Lucas put in an appearance up there right on schedule. Did he make the arrest? No, by the time he checked, they'd been there and gone. Oh, I've been studying a map of that section, Jim, just in case we had to go up there. Brother, that's a rugged country. Yeah, I know, they're going to be tough to flush out. Oh, the marshal said they went into a general store and asked for directions to a place called Tomorrow Hill. Let's see that map of yours, huh? Okay, here. Let's see, from the marshal's description, it should be about... Yeah, right here, see? Uh-huh. The forest is thick through there. We've got one break, though. At least we know how they're going up the mountain. Why? Is there only one trail? No, but the marshal told me that the man in the general store marked their map for them, and he told the marshal which route he marked. Well, that's a break. I also asked the marshal whether there was any chance of heading them off. He said there was. How? Well, there's a clearing up near the top of Tomorrow Hill, and we can land up there with an autogiro. Then work our way down the trail and meet them coming up. That's it. Well, come on, we can't catch them staying here. Let's get to Hamilton. Marshal, how soon should that autogiro be here? Well, any time now. It's on its way over from Suttertown. You use gyros much up here? No, I don't, but the Forest Service does when it's fighting a fire. As a matter of fact, that's where that gyro's coming from. Oh, that's right. We heard about that brush fire before we left. It's better than a brush fire now. It's spread considerably.  They're always out of control, Jim, right until the last spark is out. What do you think the chances are of getting in and out of that hill, Marshal? Well, there's a pretty good fire break on top, and unless they get a bad wind and a crown fire, you should be safe enough. A crown fire? Yeah, that's when the fire spreads on tree tops without ever touching the ground. Oh, I see. Oh, say, by the way, which one of you's going in? You or your partner? I am. Oh, do you know that kind of country? Well, I worked as a guide when someone was in school. Uh, this cabin that we got marked on the map, Marshal, uh, this is the place that I'll head for first. Yes, they might stop there. It's the only cabin in the whole hill. Well, if they don't, I'll just start working my way on down. Okay. As soon as you find them, we'll send the gyro back up to take all of you out. Oh, swell. Oh, here it comes. Now, here comes the gyro. I'll get you that portable transmitter you want. All right, I can use it. Oh, in fact, I'll call you one as soon as I reach the cabin. Right. Hey, Marshal. Yes? If you get a chance to talk to that weatherman, will you tell him to turn that fire around the other way? Did you come up here blindfolded? All I remember is trees. Ah. Well, we better be. Really getting smoky around here. The fire's getting closer, Pete. Look, forget about the cabin into them trees. Yeah. Does it look like the place where you stashed a doe? Uh-huh. It is the place. Come on. Come on, let's go. All right, comfy. Yeah. I never thought we'd find it this easy. Where? Where's the stuff buried? Inside the cabin. You remember exactly where? Sure. Okay. Let's get off here. Whoa, whoa, whoa. Looks like we've got here just in time. All right, what do you mean? The smoke's really moving in. We won't be here long enough to have trouble with that. Here we are. Come on. Okay. Where's the stuff? It's in the tin box under that floorboard. All we need to do is...  What?  A stick up? No. I'm a special agent of the FBI. Where'd you come from? Never mind that. Just stand still. I ain't carrying a gun. Oh, but your friend is. It should prove to be the weapon that was used to shoot Williams. They found Williams? Yes. Still alive. That's how you got here, huh? That's right. Now, you two just stand where you are while I arrange some transportation. Station X-47 to X-193. Station X-47 to X-193. Come in, X-47. Gene? Yes, Jim? I've got Shelby and Lucas up here at the cabin. You can send the gyro back. Jim, your zone is ceiling zero. Huh? There's no chance of a gyro coming in for you. We'll return in just a moment to tonight's file which shows how your FBI protects American citizens and American homes. Now a word about another type of home protection. Protection against mortgage foreclosure. A plan that has made it possible for thousands of homeowners to phone their wives like this. Darling, listen to this. We don't need to worry how we're going to meet those doctor bills and our mortgage payments, both coming due next week. We can use the cash fund in our equitable, assured home ownership plan. And that's exactly why the Equitable Society's assured home ownership plan provides this cash fund. It's a nest egg to use when sickness or unemployment threaten home security. You see, this money-saving, home-saving equitable plan combines a low-cost first mortgage with special life insurance protection. Thanks to the life insurance element, the special cash fund is built up. It's always ready for use in emergencies. As the mortgage shrinks, this cash fund increases. For example, it can be used to pay off a 20-year mortgage in approximately 15 years. In addition, the Equitable Assured Home Ownership Plan protects the home against the death of the breadwinner. In the Assured Home Ownership Plan, if the owner dies, the Equitable Society cancels the mortgage. It's paid off in full. What's more, every dollar previously paid under the plan to reduce the principal is returned to the widow along with the cancelled mortgage. Last but not least, the mortgage interest is only 4%. And there's a liberal allowance to cover title search, lawyer's fees, and other closing costs. So all in all, a man is very fortunate if his health, age, income, home, and its location qualify him for an Equitable Assured Home Ownership Plan. The way to find out if you qualify is to get in touch with your Equitable Society representative. Look in the phone book or write care of this station to the Equitable Society. That's E-Q-U-I-T-A-B-L-E. The Equitable Life Assurance Society of the United States. And now back to tonight's file, The Curious Prospectors. Words in any language, probably the oldest, is the word fire. For it goes back to the very beginning of recorded time. Down through the ages, man has come to know something about fire, has come to put it to his own uses in many instances, and yet has also come to realize that there are times when fire is his master. Today, any good student of forestry can show you black marks in the woods that point to a gigantic fire that burned as long ago as the year 1400, even before the discovery of the continent. And yet, despite all that experience in fighting fires, despite the experience of generation after generation, man today still tastes defeat in his battle against a blazing forest. No one can tell which way the wind will turn, which way the fire will jump, which flame will leap the highest, because every fire is a brand new adventure, every fire makes its own rules. And thus, this battle of man against the fire is the most primitive warfare of all, and pits man against an opponent he has never conquered yet, an opponent called nature. This file continues at the cabin on Tomorrow Hill. Jim, did you hear my report on the gyro that it can't come in? Yes, Gene, but I don't understand it. Visibility was fine when I landed here less than an hour ago. I know it was, but there was the down canyon wind at the other side of the hill then. It shifted, and that clearing you landed in is covered with smoke from the fire. Oh, I see. You'll just have to make it out the best way you can, Jim. Well, Shelby and Lucas have a couple of horses. I can use one and put both of them on the other one. That cabin is six and a half miles from the nearest roadhead, so we'll drive up as far as we can and wait for you. Okay, we'll start immediately. I'll take that trail that Shelby and Lucas used. That's closed off by now, Jim. The only trail open is the one marked number of 38, three eight on your map. Just a minute, Gene. Yeah, I got it, Gene. Okay, I'll take 38 all the way down. We're leaving here now. All right, you two. Come on, we've got to get moving. What about the money? I'd dug it up before you arrived. All right, come on, let's get out of the horses. You think we'll make it? You know as much as I do. Come on, Shelby, start moving. Okay. Hey, look. What? The horses. They're gone. Most of it's bad. What happened? Jim called. He surprised both Shelby and Lucas in the cabin. Trouble? Not with them, but the clearing closed in and the gyro couldn't go back and pick them up. Jim was going to come down trail 38 on the two horses Shelby and Lucas used going up. Well, that's not a bad trail. They haven't got the horses. Jim called back and said they'd run away. This is bad, Gene. If that fire starts jumping, they might not be able to use 38 for the last two miles. Is there any other way down to the roadhead? No, no trail, but if Jim uses his compass, he might be able to beat the fire. You don't sound very optimistic. Well, there's a weatherman over at the Forest Service, Gene, and by his figures, the wind that's driving the fire down Timora Hill is going to get stronger. If it does, they might not have time to get out of there on foot. That part of the forest is thick with Douglas firs and they're all dry. Is there any chance at all of getting in there any place with the gyro? No, not a prayer. There's a blanket of smoke over the ridge now, so thick you can't see the sun through it. Is the road still open? It was when I left the Forest Service, but that won't get us within five miles of Taylor. Well, let's drive up there and get as close as we possibly can. I think I can hardly walk. Watch your step going through there. You think we'll get out? Sure we will. Look at that smoke. Well, the smoke's getting heavier, Shelby, but it's not getting any hotter. That probably means the fire isn't getting any closer to us. Keep going. We can make it if we just keep up this pace. Do you know where we are? I'd like somebody to keep going, will you? We've still got over two miles to go to that roadhead. We'll just keep right on this point on the compass. Oh, come on, let's leave him.  Come on, Lucas. We're going to get him by hand. Huh? Yeah, now come on. Grab his right arm. I'll take his left. Get out of here with him. Take that other arm and left. How does it feel? I can't stand on it. Throw an arm around Shelby's shoulder. That's it. Put your arm around mine. All right, come on. This is where they're setting up the new fire line, Gene. Can't get any closer in this. What do they want with the tractor way up here? Well, they can clear a fire line 10 times as fast with the tractors they can with men alone. Those cats dig in. I see. Look at that tree flare up out there. That flame must have shot up 50 feet. Well, let's hope we don't see a crown fire. If we do, you'll really see some high flames. Is there much danger of one? There's always danger of a crown fire. Oh, with these bird trees. Well, I hope they don't have to light those backfires. What do you mean?  That way it burns itself out because it's got no place to go. But Jim is in there with his two prisoners. Well, they're not going to light the backfire unless they absolutely have to. But if the flame gets past this line, you know, it'll probably go right through the whole town of Hamilton. Oh. Look at that crown fire. Look at it go. Gene, that's right across the line that Taylor was coming down. Are you sure? Yeah, I'm afraid so. And I'm also afraid the trail is closed off. That probably means they can't get through. Come on, see if you can get up again.  Why do I care about him? I'm worrying about myself. I'm going back up to him. There isn't a chance of that way. I'm going to try it.  You'll never get through. And you shoot him. I threw my bullets away, back up the trail. Live ammunition isn't safe to carry in a fire. Anyway, he won't go far. Come on.  All right, we'll start moving.   Let me start got some holes in it. Come on. We can't walk right into the fire. I'm not walking into it. I'm looking for something. I think I see it. What? That black spot in there. Beyond the flames. It's been burned already. If we can get there, we've got a chance. Hang on. Come closer to ground as you can. Light her up in those flames. Stop talking with you. If we get lucky, we've got a chance to live. Maybe they'll make a big fire again. And things only burn once, Lucas. Come on. It's our only chance. Be careful, that ankle. I haven't got the strength to carry you again. Okay. I'll do my best. Lucas, I don't know why we... With the finding of the body of Pete Shelvey, this case from the files of your FBI was closed. But there is more to this evening's case than the moral that crime does not pay. Further investigation by the Forest Service shows that this fire began when an unthinking camper neglected to put his fire off. The terrible toll taken by fire in this country last year reached the staggering sum of $700 million in money and the irreplaceable total of 11,000 lives. There's a fire started in the United States every 20 seconds throughout the day and night. And the inditing fact is that more than 85% of those fires are started because of one thing, carelessness. This is the beginning of the outdoor season throughout the nation. Some of you soon will be starting on camping trips, on picnics, or on vacation joints that will take you outdoors. To you, we address this message. 100% of the fires started because of carelessness could have been prevented. Be careful with lighted cigarettes. Don't leave picnic fires unattended. Use fires if you wish, but never forget that wildfire can be an important friend while it can keep you warm and help supply you with a hot meal. It is also a treacherous enemy and it can be deadly. Without the Equitable Society's Assured Home Ownership Plan, if the idea appeals to you of a low interest rate first mortgage combined with life insurance to protect your home against death and hard times, then I suggest that you get in touch with your equitable representative soon. He'll show you exactly what this plan will do for you personally.  So contact your Equitable Society representative without delay, or write care of this station to the Equitable Life Assurance Society of the United States. Next week, we will dramatize another case from the files of the Federal Bureau of Investigation. A story concerning America's number one crime problem, its subject, juvenile delinquency, its title, Little Tough Guy. In tonight's Equitable Life Assurance Society's broadcast are adapted from the files of the Federal Bureau of Investigation. However, all names used are fictitious and any similarity thereof to the names of persons living or dead is accidental. Tonight, the music was composed and conducted by Frederick Steiner. The author was Jerry Lewis. Your narrator was William Woodson and the official agent Taylor was played by Stacey Harris. This is your FBI is a Jerry Divine production. This is Larry Keating speaking for the Equitable Life Assurance Society of the United States and the Equitable Society's representative in your community. And inviting you to tune in again next week at the same time when the Equitable Life Assurance Society will bring you another thrilling story from the files of the Federal Bureau of Investigation. Little Tough Guy on This Is Your FBI. This is ABC, the American Broadcasting Company.


Okay, and I guess I'm still on because right now we're going to show a clip, a video clip of former attorney Ramsey Clark. And I'll just tell you a little bit Ramsey Clark. He was an attorney general of the United States under LBJ Lyndon Baines Johnson. After he left that position he went to Vietnam, and he saw what he was doing there and he became an anti war activist of the highest level blazes traveled all, excuse me. Ramsey has traveled all over the world witnessing what the United States has been doing to people in poor countries and killing millions of them sanctioning them and oppressing them. A film titled Citizen Clark, a life of principle was made by Joseph still when it came out a couple years ago. This video clip we're going to see is an edited version of a talk Ramsey gave in 1998 at the Holman Methodist Church the church of the Reverend James Lawson. Now I was there that night it's titled, this talk is titled Puteocracy, wealth governs this country. And I want to say this was filmed by Ralph Cole. And it's part of my film what I'm going to do about this foreign policy that what you're going to see, and do the health reasons Ramsey could not be with us here tonight but here's this eight minute clip of Ramsey Clark. The war movement for three decades. Ramsey has traveled all over the world and has been in Iraq every year since the sanctions were imposed. If you think it's been a long evening, wait till I get through. We're going to have to take some long evenings because this planet is deeply troubled and the greatest cause of that trouble is our own government. In the speech that James Reverend James Lawson referred to that Martin Luther King made on April the 5th 1967. The most startling thing that he said at the time the thing that caused the most anger and hatred to be directed toward him was this sentence. The greatest purveyor of violence on earth is my own government. 31 years ago why anyone would have been startled as hard to say because it was an obvious fact. But apparently we need more education in the obvious than we do examination of the obscure and unknown. Last year US military expenditures with all the suffering on the planet, all the sickness and hunger and ignorance and pain. The American military budget was $265 billion. The second largest government expenditure for militarism was $48 billion. That was the Russian Federation. The United States military expenditures exceed those of the top 12 government expenditures on earth by themselves and are more than a third of all the military expenditures on the planet. We have a war party in this country and we've had it all along. It has been the special economic interests in this society that have governed us from the time that we founded our governments on this continent. And the people have never controlled those governments. We call ourselves the world's greatest democracy. We are absolutely a plutocracy. It's the most obvious thing in the world. Wealth governs this country and wealth uses military violence to control the rest of the world as best it can and we will pay the price for it. If we don't control our violence, if we don't control the effect of the symbol of our glorification of violence on our children and on the rest of the planet, then this human species is going to be the first to destroy itself completely. And that's the road the United States government has put us on. The single most pertinent statement on this issue is by Henry Kissinger. When the Iran-Iraq war began, over a million very young men lost their lives in that war.  And that was exactly our policy. What could be better?  Then who has to worry about that region anymore, you know? And don't think that's not exactly our policy all over the world where there are poor people living today. That's the solution to overpopulant triage whatever you want to call it.   And they're dying all over. Asia, Africa, and Latin America were the masses of poor people live. They're expendable there as they are expendable here. It's appalling us what we've done and what we've threatened to Iraq. The worst violence that all of our technology could unleash. And then the strangulation of the sanctions. The thing we have to realize is it's what our government leadership has been doing all along. It's not terribly different than how we addressed the folks that were here to meet the Mayflower standing on the dock. The North American Aboriginal peoples, the end-ends as we call them. A long, steady course of destruction of those peoples. It's not terribly different than what we did to the slaves that were brought over and changed from Africa. Those that survived the transit, which wasn't easy. You look in our history books, you don't read about a Philippine-American war. You read the Philippine history books and they know about a Philippine-American war. We caught the Spanish-American war. We were liberating the Filipinos. We killed more than a million. Now we're bragging about the covert actions we're going to engage in against Iraq. Do you doubt for a minute that they're planning covert actions in half a dozen other places right now? We'll react to them five years after the misery has begun and the people have been devastated. What we have to realize is that if we don't stand up and stop this now, if we can't stop these sanctions in Iraq and if with them we can't prohibit any further use of sanctions that are designed to impact on the poor, then there are no poor people on the planet that will ever be safe from our government and its future acts. It's imperative that we stop them in Iraq today and that we prohibit them in the future as applied to any people because it is a weapon of mass destruction. We have to stop military interventions by our government completely. We cannot permit more U.S. military interventions in foreign countries. We have to stop economic interventions. We've got to cancel foreign debt that has enslaved most of the poor countries of the planet. Cancel it. Let's organize through every effort and opportunity we have in our families, in our churches, in our mosques, in our synagogues, in our schools, at our jobs. A massive coalition committed to end militarism and economic exploitation by our government. Thank you.


Hey there, thanks for joining me. We're gonna be talking about asynchronous JavaScript and PureScript for Haskellers today. My name is Ben Hart. I'm director of Cardano Operations at mlabs.city. We're currently hiring for Haskell, PureScript, and Rust at all levels from intern, entry-level, senior, and management. Take a look at our website mlabs.city. So I personally come from four years of Haskell and PureScript via functional full stack JavaScript, and I'm from Toronto. Let's let's drive in. So what are we even doing? We're gonna examine some asynchronous primitives in JavaScript with callbacks. We're gonna take a look at more modern approaches like promises and async await. We're gonna take a look at pure script abstractions in the effect and af monad. We're gonna learn just a little bit about fibers, which are almost threads. So examples 1 through 3, we're gonna take a look at sort of simple event emitters. So this is a way to sort of reason about how JavaScript asynchronous sort of appears to work. So this is synchronous programming, but it can build up into an asynchronous kind of API or essentially can be used to sort of reason about the way that the browser allows us to do asynchronous programming or node for that matter. So here we have sort of an emitter object. It's got this idea of some listeners, which is a queue of functions that will grow as we add them with on event. So we're gonna add listeners and then we're gonna fire off a listener. So this is where we get into sort of asynchronous appearing behavior where we can set up some events that then happen later on so we can reason about these computations a little bit differently.  But again, this is still synchronous, right? We could sort of step through this code really easily without worrying too much about missing pieces, at least until we get into things that are out and stored in different modules where we have to reason about things a little differently. So this is a really basic system. Let's go ahead and run this sort of asynchronous foundation. So here we can see we have this idea of like starting the action, listener attached, and then even though we say pow up here, it doesn't happen until we sort of kick off this event, okay? So it's a really simple sort of scaffolding out of of this computation that's gonna happen later on and then we can kick it off in a much easier way without defining all of the computations got to happen right at the moment when it has to happen, okay? So next we're gonna move ahead so we'll extend it and we can actually add, we can add a lot of things to this actually, if we flip ahead, we can extend it to include event types, which is what we've done here, but we can also extend to different types of observable data and we can extend it to do all kinds of other things. State management, it's a good intuition for how DOM event listeners operate, so if you want to add a button to a page and have events occur, it's also sort of how Ajax requests and networking requests are gonna work. So here we have another example. We've got these two different event types and I have sort of intentionally switched their order, so now we can we can sort of fire those off in in different orders based on labeled events. So our what used to be just one queue is now a map of queues to event types, okay? And then we can have another sort of version of it where instead we hold some some data and every time we change the data, we make that data available to some functions for state management, okay? So this is observable data. You can see we also optionally give the ability to reference the previous value using variadic functions here. So because we don't have a fixed number of arguments to our function type in JavaScript, we're able to to pull these kinds of tricks. These will get ironed out later on, but for now there are some conveniences that we can pull from this. So let's go ahead and run that example. And you can see as soon as we change this initial value of hello to bob, we get first the first listener going off and logging out the original value hello. And then a second listener fires, which is going to give you the new value. So these could be supplying them out to other callbacks. They could be running network calls themselves and you can get this notion of sort of a chain of functions that call each other, building up a call stack, but potentially with asynchronous steps where you're not adding things to the call stack immediately. So this brings us to sort of a fundamental problem. JavaScript is single threaded usually. Worker threads don't count. They're a bit of a newer addition. But what I'm talking about is the fact that JavaScript runs with an event loop. And when an event is triggered, there's a call to an event listener that's placed in a queue kind of waiting for the event to resolve. And once the call stack is cleared of synchronous behaviors, the JavaScript runtime is going to start to execute listener calls from the queue. So it's sort of very similar to this. But the reality is that this emitter is obscured. It's implemented off in the browser, maybe in C++. It's in the node core. It's part of the web APIs that you think of as sort of the JavaScript base library. All right. So there's a really great talk on this that I can never do justice to. It's called what the heck is the event loop anyway from Philip Roberts. And it essentially goes through just this with a lot more demonstration. So if you're interested in knowing a lot more about how the event loop works, I really recommend that as a great starting place. Now, there's also some modern abstractions that have been added on to help us prevent what's called callback hell. This idea like maybe we have so many listeners. And additionally, the old syntax for functions was very big and then relatively clunky relative to these arrow functions that we're using. So we came up with promises. They're sort of a wrapper for unfinished computations. They can't be canceled once you start them off. So here we're using fetch, which is an API for doing network calls. So we're calling off to this AI age predictor based on your name. So there's a difference between this example and the previous examples. Here we could trace through all the actions and never lose track of sort of where the JavaScript interpreter might be operating and how it might evaluate out. But here we get to a point where we call fetch and we'll very quickly get confused because the fetch computation doesn't wait for us to call fire on any of these. It kicks off immediately through a browser API. So this returns a promise here, which we then called .thenon. But the computation is sort of running in the background in another thread that we don't directly control. And when that thread completes and receives its response, this is going to be kicked off and then likewise this is going to be kicked off. So we have this sort of chain of events and if you squint, this is going to look a lot like a monad and you don't have to squint that hard. This actually kicked off as this API was being discussed. There was a hot debate about adding features like monad to JavaScript. However, there is some convenience here because you don't really have to think about whether you're calling bind or map on this. You can return promises or not promises. And that was determined to be the more sort of JavaScript friendly API. Now we also get some pleasantness that looks a little bit like do notation. So we get async await. And if you sort of equals await, if you squint that into an arrow, you might imagine this looks quite a bit like Haskell's do notation and you wouldn't be wrong. The kicker because it is just like do notation is async actually denotes that your return value gets wrapped in a promise. So then you can go ahead and catch for errors at the end just like you might catch some monad say that has monad catch or monad throw. So we have these sort of functional like types of expressions where we can sort of set up chains of computation and also set up binding do notation. But like I said, it's not cancelable. We haven't officially created monads or functors in JavaScript. And this is where the next great example comes from because there's this great library called future. And future allows you to wrap up promises with a different type, which does implement monads and functors and bifunctors and alternative and all kinds of other abstractions that you might be familiar with. So if you are using JavaScript and you cannot use pure script, this is a great system to use. It also has certain API helpers like enforcing that you supply an error handler before you get to unwrap and get your actual value out. You can also set up cancellation as well. So there's a lot of great things just to get out of the Flutures library. There's also a way to do async await like syntax using iterators. So there's a lot of great options for you with Fluture. But the main problem that you might have is that Flutures errors, they're great type errors, but they are at runtime. Which brings us to pure script. So with pure script, we are going to be talking about three different techniques. The effect monad promises and their relationship to aff as well as fibers. We're going to be taking a look at some examples with fetch and affjacks. So let's just move over to the examples. I've created a couple of simple wrappers here. I've created two wrappers. One is it uses the fetch API just so that we're comparing apples to apples. But this fetch API, it's going to essentially just take a callback and call our callback. So there's not a whole lot going on here. It allows us to just sort of have a callback like interface and pure script. You'll also notice there's this just nullary function. So we have currying here. We get the URL. We get a callback. And then this nullary function is an effect. So when you talk about an effect in pure script, we're just talking about a lazy value, a function that is deferred. Now we've also got this one for promises. So this one is going to return an effect with a promise inside. And we can change promises to affs and affs to promises. So we'll talk a little bit about that. Pure script has two different types of effects that used to have many more, but we've mostly gotten rid of them. So we can return just a promise and say, oh, we've got the promise. But there's not really great tools for unwrapping a promise. You'll mostly want to use aff. Unless you're returning it for a JavaScript user, maybe in a library. So what we've actually got here, we've got first just a callback-based API where we're using our effect call. So we just supply a callback there. Let's go ahead and run that. And we get some compiler output. And then we actually get the effect itself running. And when we get a result, we'll get the callback fired. It's stalling out for me. So I'll just move ahead. So the next thing that we can do is we can set up an aff. So here we're getting the result as an aff. And what we've done, we've got this fetch function that we've implemented in PureScript just using a promise helper to unwrap the promise and supply it as an aff. Aff gives us all of the powers of functors, moanads, bifunctors, omai, and it's cancelable. All of the great features of Fluture, however, we're in a PureScript context. So we can kind of reason about our types at compile time rather than at runtime. Okay, let's go ahead and run that. Hey, and there's our output. So again, we're just outputting text as things land. There's not a whole lot else going on. We're just calling log. All right. So now we've got these sort of basic examples. What I wanted to do next was show a PureScript native example. So let me just come down here. This is affjax on comment, the code that runs it. So affjax is the Ajax library for PureScript. So we're returning an aff. We can do a native request. This has sort of full type safe setup for your request. So here we can do requests with a get method given response format. So you might be anticipating a string response or a JSON response or some other response. You can actually set it up to do some of the parsing for you if you like. In this case, I'm just leaving it as a string. So we're not getting too much into the parsing world. But it's the same request, essentially. So we can run this as well. So that's sort of the native way to approach this. There is also a shortened helper just called get, which allows you to use much less of this. But that is the basic idea of an affjax usage. So one thing that you'll note about affjax, and it's something that is common across quite a few PureScript libraries, is it's distributed across multiple modules for typical usage. So I'd say this is sort of a design principle across PureScript is it's very, very modularized. So just be prepared for that, that you'll be jumping around all of the different modules in that library, even compared to Haskell. It's quite modular. All right. So we talked about fetch, we talked about affjax. I do want to spend some time with fibers. So fibers are a really interesting feature. Fibers essentially allow you to take affs and control these forked computations. So you can start to reason about aff as a unit of asynchronous computation. But if fiber is really a chain of asynchronous computations that you could then call various methods on. So you get some reason about it. You can see like fork aff I think is probably the most descriptive intuitive function that you might see coming from Haskell because it works exactly like fork IO. So you'll get IDs, you'll get cancellation capabilities. And you can join fibers, kill fibers, you can make a fiber invincible, or you can make an aff invincible. So there's lots of different capabilities that you can set up. For fibers and for working with complex asynchronous computations. All right. So just to summarize PeerScript's approach to asynchronous computations, you get lots of different type safe wrappers to define the outputs of unfinished computations. And you also get control over synchronicity and asynchronous using effect and aff. So effect is for all synchronous effects, which is why you have to supply callbacks everywhere. And aff is for asynchronous effect. So you don't have to think about supplying callbacks. You can just operate on your data without too much concern about what is synchronous or asynchronous, although it is clear in your notation, which one is which, because we're in due notation. You also get type level knowledge of blocking operations, which is sort of, I guess, the collaried to the above. You get abstractions for chains of computations, which follows familiar type class interfaces and laws. And you get the flexibility of flutures, but at compile time. And you get due notation. So let's go take a look at a production example. I want to show you a library that I've been working on.  We're using the WS library in JavaScript. So we've pulled in a bunch of foreign imports, which are just wrappers around various library calls. And what we can set up through a whole bunch of layers around the specific WebSocket interface that we're using is this query M monad, which allows us to just have a reader T over some config and an F. And this essentially allows us to set up some guarantees through adding and removing listeners sort of all over the place as queries go out and come back to abstract over the fact that WebSockets don't give you good request response guarantees. And so this sort of builds up a dynamic dispatch system. So you can see we do quite a bit here to build up a type safe dynamic dispatch system. We build up listener sets and methods for adding and removing to a listener set. But through this system, we actually have a very nice API for working with WebSockets, where you don't have to concern yourself with like a mother listener that listens for everything that this WebSocket could possibly spit out. We have it, but we have it sort of buried in some async helpers. And we can abstract over it. So this is a really, really strong use of the F monad, I think, in pure script. I encourage you to take a close look at this. This is the Cardano browser TX library on the Plutonomicon. So this is one that I've worked on with the team at MLabs. Well, that's it. Thank you for watching. There should be a Q&A session right after this if I was able to be there in person. Just a reminder, MLabs is hiring Haskell, PureScript, and Rust developers at all levels. We're a premier blockchain consultancy working on Cardano, Solana, and Polkadot. Please take a look at MLabs.city for more details. And I will see you at the Q&A. Which PureScript async handling approach is mostly used in popular libraries in production? And am I using the Xmonad? I am using Xmonad. Which PureScript handling approach, async handling approach is most popular? I would say AF. I would say if you're going to get, if you're going to do with any library that's doing network requests and quite a few others, you'll see AF first and foremost, I would say. How can code using AF coexist with something that uses promises or some other API? Yeah, let me, let me share my screen quick because I just want to show you to a library. So once my screen settles down from Zoom, being crazy with it, there is this great control.promise module if you're on pursuit that lets you freely convert to and from promises and AF. So to and from AF are all here. I'm just going to flip back over to the chat as well. Yeah, so that way you can sort of pass things back and forth from promises to AF, AF to promises. So especially if you're dealing with a JavaScript library returning promises, super, super common these days, you can flip back over to an AF for the easily. Does AF support cancelling a promise? If so, how? You know that I have not dug into the specific way it cancels a promise. You certainly get a cancel method for any AF, but let's take a look over here. I don't actually see cancelers that get spit out in this library. So it may be doing something just a little bit different than what you'll see over in the AF library. So the AF library has a number of constructors to sort of build up an AF, but you'll see they always return like an effect with a canceler. I actually don't get that here. So it might be that you can't generically just get a canceler out. It may be that it modifies your promise callback in some way, but you could always take a look at the source, I suppose. It's going to take me a while to parse that. I'm going to go with right now they're not easily cancelable right out of the box, but I encourage you to take a look at the docs on that one. Is there a significant performance difference between using different handling approaches? I don't notice a significant performance difference, but certainly there is going to be some penalties. Some are going to be better than others. I don't think one is severely worse than the other, but your mileage may vary. There you go. Robert just confirms that promises can't be canceled because they come from JS land. Thank you, Robert. Does it make sense to write custom FFIs around HTTP calls like fetch? I wouldn't really do that in production. I would just reach for AFTRAX.  Like I just was, I don't think there's anything super wrong with it, but in general I do prefer working with AFTRAX. At least working from PureScript. Working in JavaScript, I really prefer to work with Futures. And again, there's a toFutureFromFuture sort of set of methods in the Futures library to go from a promise to a future. How does it compare with async-await in JavaScript? I'm not quite sure what you mean by it on a pump. Oh, okay. So how does AF compare with async-await in JavaScript? I would say they're really comparable in terms of the sort of making asynchronous programming appear synchronous. I see there's a back and forth also about promises and cancelling. We'll get to that. But I would say AF is really comparable to async-await, but with more type safety. Certainly because we're in sort of a Haskell-like language, we're in PureScript, it's going to force us to make sure that our binds and our lets are sort of separated out. Whereas binds and map calls and lets with a promise or async-await, if you put an await call in a place where you don't need it, I don't think anything bad happens, at least not last I checked. So it looks like there's this abort controllers, which I've actually not heard of, but not every promise supports abort controllers. Is AFJAX using Fetch or the old Ajax APIs? AFJAX does use older Ajax APIs. And in fact, it uses the XHR2 library, I believe in Node, and the XHR HTTP request from the browser. So it is an extremely old Ajax API, which gives you compatibility everywhere. And it means you're using an API that is very highly optimized because it's been around forever. Thank you very much, everyone. I suppose that's all questions. Take care. Have a great day. Thanks for watching.


This Chicago Bears offense is an absolute mess right now. And if you have Justin Fields and your fantasy football team, that team might be kind of a mess too. Not only does his Bears offense rank dead last in air yards per attempt this year, which doesn't make a whole lot of sense when you've got Justin Fields a quarterback, but Fields is not running the ball. He had just four rush attempts in week two and he's seen only two design runs this season. That rush attempt total, that was the lowest it fields has seen in the game since week 11 of 2021. In that game, he was hurt. If this continues, Justin Fields is going to fail. Period. Even still, I think you could consider him as a buy-in fantasy football. You might be able to get him for some bench players right now. Even though his long-term outlook is extremely, extremely questionable, his short-term one not necessarily is questionable. All we need is his coaches to be more rational.


From around the globe, it's theCUBE with digital coverage of AWS re-invent 2020. Sponsored by Intel and AWS. We continue our coverage here in theCUBE of AWS re-invent 2020 and we're now joined by Guru Vasudeva who is the Chief Technology Officer at Nationwide Insurance and Guru, good afternoon to you. Thanks for joining us here on theCUBE. Good afternoon. Yeah, big announcement for you folks in terms of AWS and making that connection that you have even deeper and even broader, going with AWS now as your preferred cloud provider. Let's just talk about making that kind of a commitment first off on your end, what were some of those key factors, those drivers that led you to say, okay, this is where we really wanna sync our resources. Yeah, our journey with this started almost two years ago and what we were looking for was a partner who is leading edge in the cloud capabilities as well as the ones that are creating new services. And obviously AWS is definitely a great partner to do that. And then we also found that they have this AWS Next program, Enterprise Next program. So we found that to be pretty attractive as well because it's not just about migrating the applications but also modernizing them, innovating. So they were going to really give us not only the technical capability but also access to talent and best practices. So we really entered into this partnership with AWS to achieve all of the above. Yeah, there's this, as you know, it's very popular or in vogue, obviously to talk about digital transformations, right? Yeah.  But this is where you are. And you were already kind of in the throes of this or in the midst of this, in terms of accelerating that process and refining that process, what is AWS now bringing to your table and what did you want? What did you need from them to get to going a little bit quicker maybe in the direction you were already going? Yeah, you know, one of the, like I will give you two answers. One on the technology side, they've got a huge array of services available in AI, machine learning, data and analytics. So they're constantly innovating those things. So it makes it easier for us to really stitch together solutions that gives a better experience for our customers or for agents or our financial advisors, right? On the process side, what they really brought to bear is their own internal methodology for innovation. So they, we've been able to really partner with our business partners and AWS to apply that methodology to really see, can we really do those kinds of things in an insurance company, right? And we have found that methodology to be of equal value.  You got up and running and you're moving a little less than half of them and AWS. I mean, this is a huge undertaking and the idea obviously to maintain business operations as usual. So talk about that tightrope act. I mean, how do you manage that and keep business going, keep operations still humming? And in fact, you're already looking for new kind of efficiencies and new processes that make you even a little sharper, a little leaner. Yeah, you know, the approach that we took is, it's a methodology that I've used with many of our transformations that I've had the opportunity to lead here at Nationwide where we use a very methodical repeatable process and we call it, we started with diagnostics and then once you do the diagnosis, you build a plan and then you execute the plan and then you go back and see, did it really give you the results and tweak the loop, right? So our diagnostics methodology starts with looking at an existing application, for us, for example, our claim system or our policy admin system, right? These are very critical systems for a company like us and you can just, you know, migrate them and hope that it'll work out, right? So instead we did a very methodical approach of diagnosing and saying technologically, architectural wise, what needs to change? What are the opportunities for optimizing them instead of just migrate them likewise as is, can we really optimize it and migrate it at the same time? How about security? What are the different things that we need to do on security-wise, right? And then last but not least is money, right? What does it cost for us on-prem and can it cost cheaper? And if we were to really apply all of these different levels, can we make it cheaper in the cloud? So we did all of those four different elements and we found that methodology to be instrumental in our success story. This year, we migrated our claim system, we migrated our commercial lines policy admin system, our personalized policy admin system, our nationwide.com and all of our financial services front ends. So it's a huge, like it's like the heart and soul of the company and they have gone extremely well and we really attribute that to the methodical approach of looking at all these dimensions. I don't know how you slept. I mean, that's a full slate. And to go back to the four points you were talking about earlier about the gains that you got, the last one that caught my attention there was about the bottom line, the fact that you've reduced costs, that you did save money. So it is possible that this cloud migration, again, this is on an overarching level, you can make this migration and go through this enormous transformation and still cut your money. Yeah, adds to the bottom line. Yeah, so the, you know, many people these days you read in the articles, oh, well, cloud migration not necessarily saves you money or that's not the real reason to do it. I didn't really want to accept that as an answer. Instead, what we really said is we want it to be better, faster, cheaper, all of the above, right? So we have challenged ourselves to say, what would it cost if we were to really keep it on prem and what changes we need to make in order to get the efficiency? For example, our claim system, if we were to migrate it like for like, it would have cost us 25% more to run in the cloud. We said, no, we're going to tweak how we have architected, how many, how much storage we need, what kind of things we provision. So we changed the architecture and the underpinning and the engineering and we were able to find around 20% savings, right? So if you think about it, that's like a 45% swing. If we had not done the diagnostics after the migration, I would have been like, oh my God, it actually costs us more money and that we couldn't really do. What's been the big gain in terms of, you talked about claims, obviously a heart and soul of your company, insurance policies, both on the commercial one and the residential side or the personal user. I mean, what's been the biggest impact, if you will, in terms of your core business and then introducing these new technologies and these new efficiencies into the process? You know, this year for us, if you take a look at property and casualty companies like insurance companies, has been a very eventful year, not only with COVID, but also with all the weather events that happened with the fires and the various tornadoes and so on. So when we have more claim volume, we can actually take our environment up and down seamlessly, right? We can add more capacity very seamlessly. So that's a base premise, if you will, of the cloud is that you can actually consume more and you don't have to really wait for adding additional capacity. That part has actually worked out really well and the reverse is true as well. We've been able to actually reduce capacity when we don't need it, right? That's on the base level and on the more innovation level, we've been able to tap into AI machine learning kind of capabilities and stitch together new experiences in our commercial line space to deliver new types of insights, new types of solutions for our business partners. So we have been very pleased with how we've been able to stitch together solutions by kind of tapping into the various services that AWS provides. You've been talking about all these tremendous innovations in terms of how you go about your business and how you do your business. And certainly you're realizing great benefit and gain from that. What about the other side? Your customers, millions of customers that you have and as you said, experiencing a number of challenges this year to say the least. But at the end of the day, what has been the bottom line or what is going to be the bottom line for them? For them, our kind of vision is completely transforming the customer experience that we provide them by digital capabilities, right? So they should be able to get to any answer that they want whether it's beyond their cell phone or their computer and to do that, to provide that kind of service. I think these kind of technologies actually enables us to really deliver that kind of digital transformation. What about the security side of all this? I know that's part of your concern too. I mean, it's certainly an area that is receiving and understandably a lot of attention these days in terms of providing more secure solutions and making sure that this customer data which is so precious is protected. In terms of all this activity that you're doing you've got to put in that layer of security on top of that, right? Which is paramount to your success these days as a company. What kind of focus have you maybe reconfigured in that respect now with regard to security and your customers and your operational security too? Yeah, so in the diagnostics methodology that I talked about, security is one of those dimensions that we looked at. How do we secure the information on-prem versus in the cloud? They're not like for like, we need to apply different techniques, sometimes different technology. So we built that in from the beginning. And then the great thing is, we have also learned a lot by working with Amazon about how do they do it in-house, right? I mean, they obviously run the biggest, if you will, online shopping capability out there and how do they do it? So that's the other kind of access to talent that's been really helpful. And we look at this constantly. It's something that's evolving as new threat actors come on board or new techniques of attack comes on board. We're constantly evaluating and making sure that we are fine-tuning that security, whether it's on-prem or in the cloud. What are your headlights hitting? Now, when you look down the road, I know you're not done with this by any means. Certainly understand that, but in terms of the next 12 to 18 months, what kind of progress do you want to make and where do you think that you're gonna have to where you want to make it the most? So on the efficiency side, we've got a pretty big goal to reduce our expenses by hundreds of millions of dollars. We spend well over a billion dollars on technology every year. And our cloud migration and optimization is definitely a key lever that we are pulling. And so for me, we have a target of applications that we want to migrate to the cloud. And we will be done with around 32% of them by the end of this year. And now there are 30 to 32% next year. So we've got ways to go, but in the next couple of years, we would be well over way to really migrating what do we want to migrate to the cloud? So that's definitely a big focus area while delivering savings. On the innovation.  On the innovation side, I think there is so much more to be done, whether it be internet of things or providing new offerings for our customer, for our agents, for our financial advisors. So there are so many new things that we can do. And now that we've got a repeatable pattern for migration, our energy is gonna really shift towards those more innovation, more new digital experiences. That's where our energy is gonna really shift. We took a big step today, certainly with the announcement. I know the AWS partnership is one that you put a lot of value on. It certainly has been successful for you and we wish you all the continued success as well as you head on into 2021. But thank you for joining us here today. Thanks, John.