This is an edited transcript. For the blog post and video, see A Guide to Estimating Migrations - How Much Will My Drupal Migration Cost? Part 3/3.


[00:00:00] Janez Urevc: Hello, and welcome to Tag1 Team Talks, the podcast brought to you by Tag1 Consulting. Today's talk is the last in our guide to estimating Drupal migrations. You're going to want to stick around because we'll finally answer the one question we hear more than any other, which is how much will my migration cost?

[00:00:20] Janez Urevc: We're getting more outreach than ever before from organizations that need help migrating to Drupal or that want support upgrading their existing Drupal sites. So we're doing a series of talks covering everything you need to know about Drupal migrations. From planning and estimating, through to execution and delivery.

[00:00:38] Janez Urevc: The Tag1 team, the people who actually built and maintain Drupal's migration tools, and the leaders behind some of the most complex and challenging migrations in Drupal history, are going to share their experiences, tips, and tricks to help ensure your Drupal migration or upgrade is a success. Um, in [00:01:00] first three parts of our guide to estimating Drupal migrations, we talked about defining the scope of your project and many business and technical decisions you have to make to narrow in on the best approach for your needs.

[00:01:13] Janez Urevc: That includes some decisions that are counterintuitive, like the fact that the lift and shift may cost as much, if not more than a greenfield replatform of your application. Uh, but at the, on the other hand, a lift and shift might at the same time reduce risk and make the extra cost worthwhile. Um, we also talked about how we approach estimates, um, and different methodologies that we use.

[00:01:41] Janez Urevc: To do them, et cetera. If you haven't already checked out first three parts, I highly recommend that you do, uh, check out the links in the show notes. Cost is often a determining factor in scope, affects your [00:02:00] approach, your project, and decide what you do or don't do. And that's what we're focusing on today.

[00:02:04] Janez Urevc: How you go about estimating and how much a migration costs. I'm Jan Ozurelc, uh, Senior... Engineering lead tag one. And I am joined today by really well-known top contributors to Drupal, including Lucas hating senior engineer here at TE one, one of the five current Drupal migrate core subsystem maintainers.

[00:02:26] Janez Urevc: And Michael Myers, managing director of Tag1 who produces estimates while sleeping is, uh, my dear host, co-host for this series. Welcome to both of you and thank you for joining me. And without further ado, this is our fourth episode in the estimating series. We, uh, promised quote unquote, uh, to tell our Listeners that are tuning in, how much a migration costs?

[00:02:57] Janez Urevc: And after explaining [00:03:00] our approach, our methodologies that we use, I think it's finally time to bite into this question. So, Michael, what, what would you say? How much will a migration cost?

[00:03:13] Michael Meyers: You're making me feel like we produced clickbait here.

[00:03:16] Janez Urevc: Um, no, we didn't. I did not. I hope. I mean, at least, at least, at least not intentionally. Sorry to interrupt you.

[00:03:23] Michael Meyers: Yeah, no, the first, you know, the reality is it, it depends upon your project, your organization and so many factors and. Uh, our, our attempt in the first three parts of this series was to really break down, you know, scope management, estimation process, the, the various different things you need to think about in the context of your organization.

[00:03:45] Michael Meyers: So that you can look at things, you know, um, in, in that perspective and come up with the right estimate for you. So it really, um, it really depends. Uh, you know, another thing is it depends upon the size, right? Like, are we talking [00:04:00] about a small migration? Is this, you know, a, um, a sporting club, you know, uh, you know, a small organization, is this a global 500 enterprise, right?

[00:04:11] Michael Meyers: There's two, you know, so it's, you can't just say, Oh, a migration is going to take this amount of hours or this amount of time, you really do have to dig into, uh, all of the details and variables of your specific site. To, to narrow down, um, you know, these factors for you.

[00:04:33] Janez Urevc: It's almost like I like to say when somebody asks me how much, uh, a project or in our case, a migration will cost.

[00:04:41] Janez Urevc: The answer could be, how much does a home cost? And everybody goes like, yeah, but home can cost like from... You know, in some countries, maybe tens of thousands of dollars, but let's say that a small home could be a few hundred thousand, and it [00:05:00] can go up into tens or even hundreds of millions. I like, it's exactly the same with, with this kind of project.

[00:05:08] Janez Urevc: And in the past episode, we also discussed about the importance of Q and A and project management and all those things. Like you can decide to spend less time on, on Q and A, especially not to invest into automated Q and A, but you know, that will give you a lot of value. So you have to weigh in and decide whether that's worth for you or not.

[00:05:33] Lucas Hedding: Um, as far as QA, here's my rule of thumb, and lots of people differ, just like with unit testing. When I was learning unit testing for the first time, I was told, no, don't test setters and getters. Those, those, and those data objects where you set like the first name and then there's a getter, says get me first name, um, don't, don't test those things.

[00:05:59] Lucas Hedding: [00:06:00] So the things that don't matter, don't test those things. But the things that are. Like this is where we have the meat and potatoes of our website. And if it's a, it's a for profit site, uh, or if it's a site that you're hoping to get some benefit out of it, cause it's a sales and, um, a marketing site, whatever your purpose is, figure out what the really important things are on that site and focus your quality assurance on those things.

[00:06:26] Lucas Hedding: So really focusing your time on the areas that are going to bring you the greatest value.

[00:06:34] Michael Meyers: I don't know that I would call it. Overhead necessarily, but like an easy way to approach things like project management, QA, scrum is to think of your schedule and a function of time. So for example, like we bring QA in pretty early in the project and, you know, they ramp up, you know, to a maximum, uh, across that project.

[00:06:55] Michael Meyers: And so if you know that this is a six month project, you could say, start [00:07:00] QA, you know, a month and a half in, ramp them up over, you know, the next month and a half, and then have them at the max capacity you think you'll need them for the remainder of the project. You know, project management, scrum are purely a factor of time, right?

[00:07:13] Michael Meyers: If your project is three months, you need less QA than if it's four months. I'm sorry, less PM time and less scrum time than if it's, you know, four months. And so you can, you can make, you know, if, if, you know, 40 percent of your estimated are these kinds of overhead components. You know, those are relatively easy to calculate from a, from a time function standpoint, you could take a big chunk out of your, your problem right there.

[00:07:37] Michael Meyers: Um, and now you're left with the 50 to 60%. That's. You know, functionality. Um, so.

[00:07:46] Lucas Hedding: What it really comes down to is how much you, I think you hit the nail on the head there, Janez, how much is it going to cost? How much are you willing to put into the migration? Uh, if your old site has 10, 10 pages total, [00:08:00] I would recommend for you, you just do copy and paste using your keyboard and don't do an automated migration.

[00:08:08] Lucas Hedding: We've been talking about automated migrations because you've got a lot of content, well, more than 10 pieces of content. Or, or more than 200 pieces, you know, whatever that line in the sand for you, where you really think that an automated migration makes the most sense. And I think that, uh, that's obvious, that's obvious what that line is, but you can start to count the amount of content, the number of pages, complexity of the site.

[00:08:33] Lucas Hedding: Uh, you gotta account for the fact that views, views don't. Get migrated. Those were so complex in the old site. And so redone when you move to Drupal 10, between Drupal 7 and Drupal 8. And then since then, views was redone entirely. The data model for it is completely different. And Views is so dependent upon what custom modules you're using or not custom, contrib, [00:09:00] contrib modules that you've extended Views with.

[00:09:03] Lucas Hedding: And then a lot of those contrib modules have gone away. Or have been brought into Views itself or totally reworked using Twig instead of the previous, that, that there is no automated migration that, uh, made it into core. There's a couple of contrib modules out there that have sort of worked up some solutions, but, uh, in our original sort of meta issue in Drupal.

[00:09:29] Lucas Hedding: org, are we going to migrate Views? Because it's in core now, are we going to migrate views? And that question keeps coming up, but we just kind of go back to that, that original issue where we decided we're not going to provide a core upgrade path for views. And the reason at the time, and I think it's still proven to be true, is that if it's such a simple view that we can actually migrate it, we probably could have rebuilt that view in about five minutes.

[00:09:57] Lucas Hedding: If it's so complex that you were gonna value the [00:10:00] benefit of a migration, then it's so complex that we probably couldn't have written the migration for either without having written the view. Again, our, you know, it's, it's, it's just a, so how many views do you have? Is your, is your site really dependent upon views?

[00:10:18] Lucas Hedding: Are the views complex or sim or simple? Uh, are you, uh, do you have a lot of content types there? Are there a lot of fields? Are you going to get, uh, do you have e commerce and sort of using like the commerce version one and kickstart, maybe even from, from Drupal seven. And now you've got to move to commerce version two and three.

[00:10:43] Lucas Hedding: Uh, do you have a lot of integrations third party wise? Um, and then back to that, that custom custom code, how much of that is, uh, if you're dealing with just pure data and you've got five content types. [00:11:00] With 20 fields on each content type. And, you know, the normal 50 or so contrib modules, you're probably for a data, pure data migration, you're probably looking at less than 500, maybe 1000 hours.

[00:11:19] Lucas Hedding: That's the high end, and it can go a lot less, you can go down to. 50 to 100 hours if you're, if you're, if you're willing to, to cut corners here and there, if you're, if you're not rebuilding any of your content types, if you're not doing any Q and A, and you really start to pull it back to the bare bones, as you get closer to that really, really small number of hours on the estimation, your quality is definitely going to suffer.

[00:11:46] Lucas Hedding: But if you need a number to start putting your Put getting, how much is this gonna cost for pure data? It's not 10,000 hours, it's probably not more than a thousand [00:12:00] hours. Uh, and, and, and, and now you can start to kind of start to budget this and you, and then then you, that custom code figure out how much that's gonna be.

[00:12:10] Lucas Hedding: Uh, we're, we've all done. refactoring of code before. So I am going to leave that in the able hands of you, the listener to figure out how much that's going to be. But if it's simple, it's going to be simple to recreate. If it's complex, it's going to be harder to recreate. And then you start taking those hours.

[00:12:29] Lucas Hedding: And then you look at how much do I have to, how many internal resources do I need to allocate? If I'm doing it myself, is it me? And I run my own site. So how long am I going to take to do this? Or am I hiring an agency, like TAG1, to come in? Well then you, then you can kind of get a pretty good idea from what's their hourly rate?

[00:12:50] Lucas Hedding: Are they doing time and materials? Are they going to do fixed bid? And you can kind of figure out whether or not the, uh, [00:13:00] Well, you can figure out what the cost is going to come in at one. One thing that comes to mind when I'm saying this is if you if you're an organization going to an agency saying how much is this going to cost, it might actually be in your benefit to know some of what we've been talking about over these last four sessions, because if you have two agencies that come in, and one says, you X amount and the other one comes in at Y and it's massively smaller.

[00:13:30] Lucas Hedding: You might start to ask some of the things like, well, did you account for Q& A time? I've come into so many, uh, life saving events of a migration before where the previous agency just didn't cut it because they forgot about so many things. And after six months, they're still not over the finish line. Right?

[00:13:53] Lucas Hedding: So even if you're not actually doing it because you needed it for yourself to figure [00:14:00] out as you might want to still pay attention here, because these things will help you on the receiving end of an estimate to know if they're going to come around and say, Well, we're timing materials here. So we estimated at 500 hours, and now it's going to cost 15.

[00:14:17] Lucas Hedding: And here was our and there end up being more expensive than the other guys that estimated at 1200.

[00:14:24] Janez Urevc: Yeah, that's a really good point, and that's what we see very often, and that's why it's really important to take into consideration all of this aspect that we talked about, uh, a lot in this series. Um, and the point being, it's really hard to put like a general number, um, because there are so many things that affect

[00:14:52] Janez Urevc: estimates. But what we're hoping is that in this series, we equipped you [00:15:00] with, uh, you know, some knowledge and understanding that will help you understand a what affects an estimate. And most importantly, when you get an estimate from from different agencies to understand you know, what they might be missing.

[00:15:20] Janez Urevc: Why are there huge differences between those, uh, offers, et cetera? Um, one thing that we didn't talk about that much, and I really want to cover it. Are risks like in every project. There are, there are aspects that can cause the project to go sideways. Um, and that usually reflects into higher costs, longer, you know, timeframes, et cetera.

[00:15:56] Janez Urevc: So what? Are the things [00:16:00] in specifically migration projects that will blow your time and budget, Michael, in your experience,

[00:16:10] Janez Urevc: you're muted,

[00:16:12] Michael Meyers: really bad estimates and poor planning. Uh, so, you know, I know what you're saying, though, like once you get into the project, uh, you know, that aside. I think, you know, indecision and redecision, you know, going back to your, you know, your, your house example, we're remodeling our house right now.

[00:16:32] Michael Meyers: And it's like, um, you know, what color do you want? Well, I don't, you know, if we finally pick a color for the, you know, the room and then we come back, we're like, I don't like the way this looks, you know? Uh, you know, a migration is, is not dissimilar and I, you know, what we've seen is that there, there, there can be, um, both indecision, um, you know, the, there's a lot of risk on the line, it's an important decision for whatever [00:17:00] reason, people are hesitant to make certain decisions.

[00:17:03] Michael Meyers: Which, you know, starts blowing the timeline and has cascading effects because it's blocking certain things. Um, and then on the flip side is the, you know, the, the re decision, the remaking of decisions can be, you know, just as disastrous. The idea that you make a decision and now all of a sudden things move forward and you change what you want to do

[00:17:25] Michael Meyers: And, you know, it's, um, ripping that out and, and, and remaking that decision, you know, it's not always as easy as painting the walls, right. We may need to like rip open some walls. We may need to move some beams, you know, uh, you know, uh, And so, you know, the re decision making process can be absolutely brutal.

[00:17:45] Michael Meyers: Um, you know, depending upon the kinds of decisions that you're rehashing. And if you do these two things over and over again, um, you know, maybe, you know, sometimes you can get away with doing it a little bit here and there, but, you know, um, in aggregate, it is, you know, truly [00:18:00] disastrous to schedules and budgets.

[00:18:04] Janez Urevc: That's a great point. Um, what about some of more technical, um, problems that can affect the budget, Lucas? I'm pretty sure that you have some thoughts about that.

[00:18:16] Lucas Hedding: Yeah, yeah. If you've got really bad data in your own site, if it's not structured, if it's one big body field, And part of one of your decisions was we want to structure this more, we want to structure this differently, or we just had a like a plain text field to store dates.

[00:18:37] Lucas Hedding: We want to parse out the fact that this is a date, and we want to store it in a date field in the new site. Except, except we forget to tell anyone about that requirement until two days before we're about to go live. And, and then that leads into, uh, if you have too many of those. [00:19:00] pausing and pausing the go live and then you wait and you have to solve all of these problems.

[00:19:06] Lucas Hedding: And then there's this like trickle down effect where we missed whole requirements on this new site. And we, we don't have a, uh, the feature that was like in our minds. Critical that no one told anyone about. And now we're waiting three months to add this new feature to the site. These are the things that don't happen often, but when they happen and they do happen regularly, where they can just blow up your budget, where you were originally thinking it was going to be easy breezy, and now at the last minute they're making changes or, um, we really thought this was a really simple structured data.

[00:19:55] Lucas Hedding: It was a big body field and we're just moving it into another big body field, [00:20:00] but didn't realize that there were embeds in there that are not YouTube. And, and, and we didn't account for the fact that they, uh, they still need to render as a video, but they're not one of the main, there's so many things that as you're dealing with the old data, the data is what makes it hard when you're moving from left to right, moving from old to new.

[00:20:24] Lucas Hedding: So if it's not easy, if that data is not structured, that can, that can. slowly inch up your budget. And then if you get to the end date and you've got a lot of stakeholders that have to give feedback and they didn't get involved early enough and they start looking at the new site and they say, Whoa. This isn't what I expected.

[00:20:51] Lucas Hedding: And then you start to wait. Waiting is really, really bad for a migration. It's happened [00:21:00] enough times now. I've got these horror stories in the back of my mind. We've had to wait for weeks and months. To finally pull that trigger and go live and the the cost of scrum and PM and, um, keeping updates on a site that aren't live and hosting fees and on and on and on that are just trickling on for the project until you finally can go live.

[00:21:25] Lucas Hedding: They can get really quite unmanageable. So plan out what's the MVP, that minimal viable thing that we can push live and stick to it. Uh, uh, when you're estimating things, really get down into the data a little bit to see what is the quality of it. And, uh, and then, you know, manage when those things come up, manage them as risks, manage, uh, manage them as things that you might realize.

[00:21:59] Lucas Hedding: And like Michael [00:22:00] said, stick to your decisions. Reworking of a migration normally can provide a lot of impact on that bottom line.

[00:22:08] Janez Urevc: It could very well happen that if you wait for too long, um, And let's say you are, you, you've been building your migration on Drupal 9 and then Drupal 10 comes out. And if you wait for a very long time, Drupal 9 could become end of life before you went live.

[00:22:26] Janez Urevc: So you, now you have a migration, but you already have to update it before you go live. If you, you know, want to be on, on a recent version. Um. And we're, we've definitely seen things like that happen.

[00:22:40] Michael Meyers: We're talking to an organization right now that did exactly that. They started on a migrating upgrade from seven to nine.

[00:22:48] Michael Meyers: Um, they kept deprioritizing the project. D10 came out, they kept deprioritizing the project. Developer left, um, you know, so now, you [00:23:00] know, yeah, it's, it's a tricky situation. Um, I think managing risk and scope is a lot of what you were talking about there, Lucas, to some degree as well. Um, you know, doing some exploratory work, you know, checking into the data, you know, doing investigation to Sandy, check your assumptions and make sure that you can proceed the way that you planned.

[00:23:21] Michael Meyers: You know, uh, adjusting is necessary and, you know, and, and refactoring your schedule based on what you find.

[00:23:27] Lucas Hedding: Having a really good, uh, product owner, and find a product owner for me, but like having a good product owner is critical to all of this.

[00:23:39] Michael Meyers: setting, enforcing decisions, getting that stakeholder buy in, like you said, making sure you're engaging, uh, you know, folks across the organization throughout the process, I mean, that, you know, that, you know, could be a topic in its own right.

[00:23:53] Michael Meyers: You know, we did a big project for, uh, a top 10, uh, fortune 500, and that [00:24:00] was critical to the success of the initiative, they were moving from other technologies to Drupal, very widely used system that people either loved or hated. And their hope was to get more people to love it, um, and, and, uh, foster more collaboration.

[00:24:15] Michael Meyers: And their approach to engaging people from, you know, uh, day one through launch and post launch had a huge impact on the success of the project, you know? So, you know, really have to think about not just your budget, but your, your success.

[00:24:31] Lucas Hedding: I remember that effort and they were critical to it was those those demos to the client every two weeks.

[00:24:37] Lucas Hedding: Here's what we did in the migration aspect. It was really just showing here's the data we've been able to pull over. But then there's all the other pieces of here's these new features and digital components that we've built. But yeah, it's, it's, it's important to figure out what works.

[00:24:53] Michael Meyers: Yeah. We did a, uh, the traditional scrum demo internally, and then we had an external stakeholder, like a much more [00:25:00] polished, like demo demo, like a presentation every two weeks to, you know, uh, to people that were interested.

[00:25:08] Michael Meyers: Um, and then the other thing I would say as far as risks go is. You know, you're making a lot of changes to your application, or in some cases, you're building on a new technology. Um, and we've come into a lot of migrations towards the end. Um, we're working on one, uh, now where they rebuilt an old system.

[00:25:28] Michael Meyers: Again, this came from legacy technologies, not from like Drupal seven and Drupal 10. But they rebuilt the system in Drupal. And while they had all the features and functionality they wanted, uh, performance suffered greatly. You know, they really killed performance. It wasn't, it was much worse than the original system and they had other, you know, compliance and other issues that were suffering as a result of the many things that you might change during a migration.

[00:25:53] Michael Meyers: Um, and so that's something to account for as well. You know, don't leave, uh, things like performance and, [00:26:00] um, say compliance matters until the end. The kinds of things that you want to be monitoring, um, throughout the entire development process and life cycle. So you can catch them and address them when they're much easier to handle.

[00:26:14] Lucas Hedding: As far as the performance during the actual migration of data, even at tag one, we have like a tiering of. Of migration experts and performance experts. And I have a couple of efforts where you guys pulled me in and we had these performance issues where, where the migration was running slow. And we had to really get down into the database layer to figure out why we were having deadlocks and how can we performance tune the SQL queries to get these things that were going to take days and weeks and months to run.

[00:26:48] Lucas Hedding: Months is a bit of a stretch, but not too much because it was a large dataset. And how do we get that performed? And I know we've got a whole talk about it, but whenever. [00:27:00] Whenever you're managing risk on a project, uh, that's a risk. If you've got a lot of data, is this going to, is this migration going to happen in a timely way?

[00:27:10] Michael Meyers: Uh, the last thing I'll say, I know we've got to wrap up, uh, just to shout out to, I think it was part one of this series that we talked about another organization we work with that, uh, You know, on the spectrum we talked about on one end, you have lift and shift. And the other, you have like a complete greenfield replatform.

[00:27:25] Michael Meyers: You know, there isn't necessarily truly a pure lift and shift when you're doing a platform migration because a lot's going to have to change. But, you know, they said, Oh, you know, we don't have the access to the resources. We need to do a redesign, you know, uh, whether that's internal stakeholders to say, I like these colors and whatever to the actual, you know, designers and, and themers or, or whatever.

[00:27:47] Michael Meyers: And so they said, okay, we're going to. We're going to take a more of a lift and shift approach, you know, then we are a green field, even though we know it's going to cost us more later because we want to manage our risk. We want to minimize the number of things that are [00:28:00] changing. We want to, um, you know, handle internal organizational issues.

[00:28:04] Michael Meyers: And so, you know, to the degree that, you know, sometimes it is a worthwhile investment, even if it costs a little bit more to phase things out, um, or to do things after you launch, like you're, you know, all the data you talked about, Luke is going from unstructured to structured. Maybe you don't need to do all of that in the initial migration.

[00:28:24] Michael Meyers: Maybe you'd come back and do some of that later. Maybe you can't, but these are the kinds of things that you should investigate and look into to manage your risk, especially with the actual data migration component, which can be really challenging. Especially with things that involve stakeholders and third parties, um, you know, or that just inherently have a lot of risk.

[00:28:42] Michael Meyers: These are the kinds of things you want to evaluate and say, you know, do I need to do this now? And I'm going to, do I have the confidence and how do I get enough confidence to do them now? If I need to.

[00:28:53] Janez Urevc: It's a very great point, Michael. Thank you. Um, I would like to add on, uh, the performance [00:29:00] aspect. Um, not so much to the actual data migration performance, but general project performance.

[00:29:06] Janez Urevc: Um, I here at Tag1, I do a lot of what we call performance audits. Which is, uh, our, when our clients call us when they experience performance issues. And then, uh, they hire us to help them figure out, uh, reasons and to, to solve the problems that they have. And a very common theme in those projects is that clients contact us way too late.

[00:29:38] Janez Urevc: Like we've had clients contact us basically a week before they were supposed to go live and their performance was, you know, not good. Um, so this is really something that can also blow up your budget. And if you, if you know that, that, that performance is important to you, [00:30:00] you should think about it in advance.

[00:30:03] Janez Urevc: And we recently had a client. That came to us and they said, look, we achieved quite quite good performance metrics and we want to make sure that after the migration, we keep those that we don't degrade. So that's why we suggested to a do a kind of like a mini performance audit towards the end of the project to really make sure that everything is in order.

[00:30:27] Janez Urevc: And we also suggested to do regular load testing on the project that is being worked on. And these are the things that. You know, obviously affect the budget, but in the long term, especially if we're talking about an enterprise project where performance is important, definitely pay off before we wrap up.

[00:30:54] Janez Urevc: I would like to remind you that, uh, we have some great talks coming out soon. [00:31:00] Um, we, uh, have a three part series on ETL where we're going to cover the Drupal Migrate tool and go into a lot of details on how to extract. This is E from various sources, how to handle complex transformations, T and how to efficiently load data into the destination platform, which is L.

[00:31:25] Janez Urevc: Uh, we already touched on performance, but we are planning on a full talk about performance in migrations. Um, this is a topic we deeply care about, and during that talk, we will discuss how to profile and tune a migration, including especially long running migrations, and we'll also do, we'll also talk a little bit.

[00:31:49] Janez Urevc: on incremental migrations. A huge thank you, Lucas and Michael. Um, it was my honor and pleasure [00:32:00] to be on this episode with you. Um, to all our listeners, make sure that you check the other segments in the estimating migration series. The links to the previous episodes are in the episode notes. If you like this talk, please upvote it, subscribe to Team Talks, and share them with your friends.

[00:32:30] Janez Urevc: You can check out our past talks at tag1.com/ttt. That's three T's for Tag1 Team Talks. And as always, we'd like to hear your feedback. And, uh, here, any topic suggestions that you might have, you can always write us at ttt@tag1.com. Again, that's three T's for Tag1 Team Talks. Um, again, Michael and Lucas, big thank you.

[00:32:59] Janez Urevc: And thank you [00:33:00] also to everyone that tuned in. Thank you for joining us.