This will be a very straightforward use of the abstract method, findStopCodon that I've already done. So, I'll do this very quickly. Find the first occurrence of ATG, the startCodon and store that in startIndex. So, int, startIndex gets dna.indexOf("ATG"). If startIndex is -1, I'm done. There's no startCodon, so I can't find a gene. So, if (startIndex == -1) Return -1, I did not return the empty string. That's what it says right here. And this method returns the string, so I'm returning the empty string. Now I'm going to store in TAA index the result of this method call, so I'm just going to copy and paste this method call, even though as you've learned, copy and paste does not always work as you intended, so store int taaIndex that method call. And then I'm going to store in tagIndex the same thing but it says, use TAG. And then I'm going to store in tgaIndex that call with TGA. I'm looking to make sure that my copy and pastes worked properly because Copy and paste can sometimes be your friend, but sometimes it can get you into trouble. So, I've done that. I've used taaIndex, tagIndex, and tgaIndex. I've got all those variables. The next comment says, store in minIndex the smallest of these three values. So I have to find the smallest of all these values. And one way to find the smallest value is to use the min function in the math library. So I can say int minIndex gets Math.min(taaIndex, tagIndex) that's the smallest of these two. Maybe I'll call that temp. And then I'll store in minIndex in the minimum of temp, which is the first two and the last one is tgaIndex. Let me go over that again. I've found the minimum of taaIndex and tagIndex. That's these two. And then I've found the minimum of that value, which is the smallest of two and my last Index, tgaIndex. And it says, if this is dna.length, I return the empty string. So if (minIndex == dna.length()){ return "";}. Otherwise, the answer is the text from startIndex to minIndex + 3. And as you saw before, that uses the dna.substring method from startIndex to minIndex + 3. I'm going to make sure I've got that right. Compile, cannot find symbol minIndex. And that's because I spelled that wrong there. Now I compile to know syntax errors. Just compiling doesn't mean my code works. I really need to test it. So we leave it to you to test this just as I found a test method here you could write a test method to test these. It'd be very similar to the one you saw in the previous video, but I could use TAA and TAG and TGA. Once that test method is done, I'll be confident my method work correctly. One final thing, this use of Math.min to store int temp and to store minIndex, just to let you see, it will be possible to do that on one line. I could say Math.min(taaIndex,Math.min(tagIndex,tgaIn- dex));. It's possible to chain the occurrences math min index together like that. I will leave that as a comment so you can look at it and think about it. And that's it for coding with DNA and three different stopCodons. Have fun.