Hello everyone. In today's video, I'll show you how you can add profile pictures to your React application using Firebase Auth as well as Firebase Storage in which we'll store our user's profile pictures. So I'm just going to do a quick demo here. I'm going to log in using this account and you'll be able to see we have a profile picture already there. So I can browse and I can upload a different profile picture. It's going to give us an alert that says uploaded file. You can hit OK and let's refresh this page and you can see that now we're going to have our updated profile picture. Alright, so I'm at the Firebase documentation site here and I'm looking at the user object and under properties you can see photo URL. So this specific property is what we're going to be using to store the link to the profile picture of the user which will be hosted elsewhere. So in this case, we're going to be hosting the profile pictures of the users in Firebase Storage. So that's something we're going to be looking later in the video. But basically, this is our current application that I've brought forward from the previous video and the code is exactly the same. I have not touched anything. And if you guys want to source code to my videos, it's always in the link in the description. It's going to be in the GitHub repository and you can change the branch according to what video you're watching. So the first thing we're going to code is of course the user interface where we can browse and upload files as well as that small profile picture icon at the site where we can display the profile picture. So I'm going to go over to our code and create a new component in our source directory called profile.js and let's export default function profile. So this is our functional component in React. Let's go back to app.js. What I'm going to do here is I'm going to include the profile component here at the end as well as we have to import that. So import profile from, whoops, that's not what I meant. It's dot slash profile. And then we have to return something here. Let's return high. Let's just return high for now. It's going to be a string. All right, so I'm going to do this. You can see that high is right there. Nice. Okay, so now we can start to write code inside of our profile component. First of all, I'm going to make a div to contain everything. Then let's do an input type of file. So this is where we're going to upload our file to on change is going to be handle change, which we will include above with the return statement here. Let's do function handle change. Let's leave it as an empty function for now. Then let's go look at how that looks like. Okay, that looks nice, but it's stuck to the sign up login and log out buttons there, which means I'm going to give the div a CSS class so that we can, you know, space things up a bit. Let's give it a class name called fields. And let me check the index dot CSS to see if we actually have something like that. Yes, we do, but this has to be changed to a class target. Let me move it to the bottom of the file. And then that means I have to go back to my app.js here. Let me uncomment all of that. I'm going to go look for the HTML here and change this from ID to become class name because we want to apply the CSS class to multiple elements. We don't want it to be just an ID. All right, so let's go back to Firefox and let's see how that looks like. Okay, so now you can see there's a spacing there. What else I'm going to do is I'm going to add a button here. So button, let's say upload and let's see how that looks. Okay, so now we have our upload button. So now if I browse, I can upload this picture. I can hit upload, but nothing's going to happen right now because there's no functionality inside of our upload button. So we have to do on click equals to handle click. Then we're going to do another function here that says handle click. All right. Okay. All right. And then let's add a final element to display the profile picture of the user. So right now we have our browse. We have upload button. We need like a circle thingy where we can show the image. So I'm going to do image and then it's going to be a self closing tag. So let's call alt equals to avatar. Let's do class name equals to avatar. So I'm doing this class name because we're going to include some CSS to make this, you know, circle shape image. I'm going to go over to index.css. Let me copy and paste some code over. So I'm going to copy that and paste avatar. So these are just the styles, you know, vertical align with height, the border radius, whatever. We're going to include that here. And we have to give this image a source because right now there's no source to this image. You can give it a random source. I'm going to go and look for a avatar default avatar picture. So let's do profile avatar. Let's look for that. And I'm really liking this as the default profile picture. So I'm just going to copy image link. Let's go back to our code and then type that in. Let's refresh and let's see. All right. So now we have our default profile picture. What I'm going to do next is write some code to conditionally render this component. So I only want to render this component when we're logged in because if you try to browse and upload your picture when you're logged out, then where is that picture supposed to go? Right? So I'm going to go to add.js here, add some curly braces to wrap this profile component. I'm going to say if current user is not null, only then you'll render the profile component, which means if I log out, you can see that the profile component disappears. And if I log in, then that component reappears. And since we are on the topic of conditionally rendering components, I'm also going to add some conditionals to render the sign up and logging buttons only when we're logged out. So I don't want to see these buttons here when we're logged in. So I'm going to just add some curly braces here that says if current user is null, then only are we going to render these components. And we're going to wrap that in a React fragment because we're going to have multiple components and we can only have a single parent component. So oops, I'm going to just move that down, fix the indentation a bit. Let's move these all the way inside and indent those. All right. So now if I reload, you can see that the sign in and login buttons are gone because we're already logged in. All right. And since we're doing conditionally rendering like that, we no longer need these conditionals inside of the disabled field. And then let's also render the log out button because if I log out right now, you can see that sign up and login button reappears, but the log out button is still there. So we don't want to log out button when we're logged out. So I'll take this button here and I'll move it under inside of this conditional here. So I'm going to add a React fragment and let's put the log out button there and that's refresh. And you can see log out button goes away. You can sign in again like this. And then the log out button reappears and the sign in and login button disappears. So I'm going to fix the indentation a bit so it's easier to read. So right now the profile picture that we're getting here is actually coming from a hard coded value. So if I go over to VS Code in the image element, you can see the source is actually hard coded in. And this is obviously not what we want because in the documentation side, which I showed you earlier, you can see that the photo URL property is where we're actually fetching our photo from. So the thing I'm going to do here is I'm going to get the current user. I'm going to do the current user dot photo URL. This is where we're getting our photo URL from instead of just hard coding the value like this. So how do I get the current user object? Now this is something actually from the previous video in Firebase.js. We actually wrote our custom hook called useAuth which will return a current user object. So let's get the current user object like this. Current user equals to useAuth. I'm going to get rid of this here. And then of course we have to import useAuth from Firebase. So I'm going to do just that. With that, I can now do current user dot photo URL. And this is how we're going to get our image link. The thing is every time you're fetching data from an API in React, we always want to do that inside of use effect, which means I'm going to import use effect because we want to control the amount of times you're actually fetching the data from the API itself. Just going to do a quick use effect here. Give it an arrow function and give it some square brackets. Let's get rid of that and indent this. I'm just going to do something like set photo URL and put the current user dot photo URL here. And set photo URL is not defined yet because we are going to have to code that ourselves using state variables here. So const photo URL as well as set photo URL equals to use state. And there's going to be a default value here, which I know just what to put. We're going to put this placeholder avatar image here as the default of this state variable. So every time current user updates, we're going to rerun this code, which means I'm going to have to put current user inside of these square brackets. And let's take the photo URL state variable and just chuck it in the source of this image element here. And I'm going to go back to Firefox and refresh. And we're going to get current user is undefined. So the reason for this is because Firebase requires some amount of time for its initialization period. And during that time, current user object is actually undefined. So we have to check if current user is not null. Only then we're going to set the photo URL like that. Let's refresh this. And we no longer get that issue, but you can see the avatar here is buggy because we want to get the default avatar picture. And it's not showing up right now. And the reason for that is because current user is not null, but current user dot photo URL is actually null. I can even console.log current user dot photo URL here. Let's refresh. You can see it's null. So we are setting null to this photo URL state variable. And we're overriding this default Wikimedia profile avatar placeholder image. And we don't want that. So one way to do that is we can check if current user is not null as well as if current user dot photo URL is not null. Then only going to override this default placeholder. So let's refresh this. And we should get our avatar default picture. And a more elegant way of doing this is we can of course get rid of this and we can just add a question mark photo URL. And this is basically just JavaScript magic. If current user is not null and photo URL is not null, then only we're going to run this because if you don't have the question mark here, this will throw in an error because current user is undefined and undefined doesn't have a property called photo URL. So let's add a question mark there and refresh. And now it works as expected. And so now we have our default picture there. All right. So it's time for the actual juice of the video now. We're going to look at how we can actually browse and upload our photos to our storage backend. So basically it's in the storage section of your Firebase console. You can see right now we have no files. That's about to change right now. So let's go to our code and visit an old friend called Firebase.js. Now this is where we'll be writing some of our Firebase authentication as well as storage functions. So I'm going to import a handle to get storage. Much like get auth, we're just writing get storage now. And let's do const storage equals to get storage. It's just like get auth. We're just getting a handle to the storage API. And now I'm going to make a new section for all the storage functions that we're going to have. All right. So in the storage section here, I'm going to write export function upload. So we're going to have an upload function that will upload all of our profile pictures. And this function is going to be asynchronous because we're dealing with API calls here. I'm going to take in a few arguments here. I'm going to take in the file binary as well as the current user and set loading. And set loading is here because uploading files are not instantaneous processes. It's going to take some time to upload the profile pictures. So we're going to want to have some sort of loading state. We also want to have current user because we have so many different users and each user can upload their own profile pictures. We need to identify which profile picture belongs to who and the file is actually the binary, the picture, the PNG or JPEG or whatever it is that we're uploading to the database. So here I'm first going to make a file reference just like firestore and authentication. We always need a reference whenever we are working with Firebase and I'm going to do ref. So this is how you make a reference to a file inside of a Firebase storage database. So I'm going to have to import ref from Firebase slash storage and ref is going to take in the storage handle as its first argument. It's also going to take in a file location. Now the file location can be anything, right? It can be image dot PNG. It can be profiles slash image dot PNG. It can be your pictures slash image of PNG. This is basically the location of the file that we are getting the reference of. And in this case, we're going to generate a unique file name for each individual user because everyone's going to upload their own profile pictures and they're going to have their own unique file name. So to get uniqueness, we can just use the current user object dot UID. So we're getting the unique ID for each individual user from its current user authentication object, which we're getting from the parameters here. Then we can also concatenate dot PNG to this. So right now we're just hard coding dot PNG. We can do dot JPEG and other images file extensions and do the security checkings in the next video. So now that we have our file reference, what we can do is use this function called upload bytes, which we're going to import all the way from Firebase slash storage like this. Okay, so the first thing we're going to pass in here is of course the file reference, which is just telling you upload bytes, what location, where should upload bytes, where should Firebase put the file. And then of course the next argument is the actual file binary itself, which we are also getting from the parameters. And because this is a promise, we're just going to await that and we can store the return value in a variable called snapshot. And so that's just basically all of the code that we need to upload files to Firebase. So we just use upload bytes, which is something that you import from Firebase slash storage and file reference is basically the reference of the file to tell Firebase the exact location in which to upload the file binary. And then in this case, we're just uploading it to the root directory and then we're giving it a unique name. Of course you can put subdirectors as well. You just need to do like images slash and then you can just do like something like that and you'll specify a different location. But in this case, we'll just do it in the root directory and the file itself is the binary that we're going to upload all the way to Firebase. Now because this is an uploading process, you can see that we use await inside of an asynchronous function because this is uploading files and uploading takes time. It's not instantaneous. So we can use set loading in which we're getting from the parameters as well. So we're going to set loading a true and set loading false afterwards once we're done. And what I'm going to do as well is just give an alert here so we can give the user feedback once their file is uploaded. So uploaded file and then let's save this. So now that we have our upload function, we can go to our profile.js here and we can import that. So let's import use auth as well as upload. And then here you can see that we have our input and our button here which is in Firefox. You can reload this and basically I'm going to wait for this to log in and you can see the browse buttons and the upload buttons. It does nothing right now because handle change and handle click are empty functions right now. So let's go ahead and change that. So handle change here is going to take in an event. So we just call that e.target.files. You can upload multiple files. So we're just getting the first file here. That's why we have index zero and e is going to come from this on change call from the input type of file. So what we can do is we can get the file binary inside the React state. So I'm just going to do const image or maybe photo and then set photo. So this is actually a photo binary itself. I'm going to put now as default. And then we can say if e.target.files is not now then in that case we're going to set photo to e.target.files zero. So now when we upload something we should be able to upload that into the React state and now that we have the photo inside the React state what we can do is we can go to handle click and call upload. So what do we want to do in upload? There are a few parameters or arguments that we have to fill up. So file, current user and set loading. So file will just be the photo binary which we're getting from the React state because we just put that using the handle change function here. And the next parameter is current user. So current user is just current user. We're getting that from this use auth hook here. And what else do we have? Set loading. All right. So we need a loading state. So let's just go and create that as well. So loading and set loading. Oops. Set loading. And the default is going to just be false. We don't want to start off setting loading to true. So set loading is false and then just give that here. And now everything should be done. Let's see. Oh yeah. Loading is right now it's not used. So we have to use that. Let's go to the button here and let's say disable equals to loading. So when we're uploading files, we want to disable this button because we don't want a user to spam the button when you're actually uploading the file itself, right? So let's go back to Firefox and let's reload this. And I'm going to go over to the Firebase console just to show you that right now there are no files in our storage section. I'm going to go back to my React app and I realize something. You see the upload button? It's not disabled even though we have no file selected. So if I hit upload right now, it's just going to upload an empty binary which we do not want happening. So we can also disable the button when photo is null. So null is a default value inside of our photo stage variable. So if photo is null, that means that we want to disable this so it should be if photo is null. Yeah. All right. So let's refresh this and you can see that the photo, the upload button should be grayed out when we don't have a file selected. So now if we upload this profile picture you can see that the upload button is no longer disabled. I can hit that upload button right now and it's going to say uploaded file. Let's go check the console, let's refresh that to make sure that our file is indeed uploaded and give it some time there. And you can see that we do have our file here uploaded and it's the exact same file that I uploaded so it's good news. But if I refresh this, you can see that the avatar is still the default picture. So that's something that we want to solve. So let's backtrack a little here. I'm going to go back to the code and let's look at the image element. You can see that the source of the image is coming from the photo URL react state variable which is stored here and we're updating the photo URL variable using this use effect. And this use effect updates a variable based on the current user's photo URL property which right now we are not setting. We're not modifying it at all. We're just uploading the file, yes, inside of our Firebase upload function. We're uploading the file but we're not updating the actual user authentication object. So what we can do is we can do update profile which is a function that we're going to import from Firebase authentication. So here we are importing update profile. The next thing we're going to do is pass in the user of the profile that we want to edit. So it's going to be current user as well as the object you can see here in my VS Code IntelliSense it tells us like what sorts of properties that we can update. So I can just give it a photo URL and you can give it a new photo URL. In this case, I'm just going to paste a new photo that I found online. You can just save this. Let's go ahead and test that inside of our browser. Whoops, what is that? Okay, let's go to Firefox and reload this. Let's just put any file and let's just hit upload and it should upload and change to a different profile picture. And yeah, we get our different profile picture. I'm just going to show you the link that I copied and pasted. So it looks like this and indeed this is the actual image that we see here inside of our React application. So now the thing is we don't want to just hard-code this photo URL and just paste a random picture here. We want to actually upload the actual profile picture URL that we have just uploaded to Firebase Storage from here. So how we can get the photos URL is to use this method another method called getDownloadURL which is another thing that you're going to import from Firebase less storage. So yeah, I know we are importing a lot of things from Firebase but that's just the way this works. So the first thing we're going to put in here is the file reference of the file that we want to get the download URL of and then let's do const photoURL equals to this and then let's put the photo URL here like that. PhotoURL but the thing is you can see that the name of the key and the element has the same values so I can just write it once based on ES6 syntax. So now that that's done I can come back here to my Firefox and reload this and let's try to upload a different file here. Let's upload and it should say uploaded file. Let's refresh the page to see the changes and the profile picture is not changing so I think we did something wrong here and it's just me okay I forgot to put await here so we have to await this get download URL because this is an API call as well so let's save that don't forget the await guys let's reload this and see what happens and let's try to browse and try to upload this profile picture and it should say uploaded file let's refresh the page to see the changes and fingers crossed it will work. Yes it does work so that's what I was lacking remember to put the await there and with that I think we're done with everything so I can log out now and I can go to I can just sign up with different email so let's say hello world at gmail.com let's say some password let's hit sign up and then we're going to log in as hello world we have our default picture there so all good I'm going to upload this different profile picture it's let's hit upload and says uploaded file refresh the page and we should get to see the different profile picture and we do and that's it for this video leave your burning questions down in the comment section and I'll do my best to help you out or if you have any video ideas at all for me I do keep a list of all video ideas that I receive from my comments but until then see ya


Greetings. Good morning, gentlemen. Morning. And I guess we'll wait a few minutes. See. Who else joins. Good to hear from you, Jeffrey. It's good to be able to blindly attend. I've spent a little nuts lately. Yeah. But slows down. Smooths out a little bit for you. For a while. Everyone. Morning over. Meeting that's posted to the zoom chat. All right. Please add your name. Does anyone have any. Agenda items to add. Toss air gapped on there. I kind of want to know what I need to do to finish that. Like. I kind of thought it was done, but I think like. Ian had opinions at one point and I don't see them actually. Listed anywhere on what I need to change. So I'm not sure what we need to do to close that one. But I'd kind of like to get it done. Anything else. To add. So next Monday. Then is canceled. This September 5th. So. Because of Labor Day. U.S. holiday. We will. Skip that one. And the next meeting is the 12th. Open source summit coming up. We've had different people. Post some events. And I think Victor added. A few of these. I thought might be interesting to us. I think the last there was a open source slide in America. And he's posted some stuff here and. I believe he reached out to a few folks that. May. Have talks and things interesting that could come back in the working group. So. So. I'm going to be. Cube con North America. In October along with cloud native telco day. The talks are being reviewed right now. So. See what. Is on that agenda. I plan to be. At cube con and cloud native telco day. In Detroit. I plan to be there. I plan to travel. And then one summit in Seattle. In November. Also. Probably going to be at that as well. Not sure I know any yet, but. Looks like I'm good to go for telco days and cube con. Great. Excited to see you guys finally in person again. Yeah. Nice. Right now it's I'm a tentative yes for one summit. And the elephant developer and testing forum as well. We may end up having a. Tutorial at the elephant developer and testing forum on. Preparing your CNF. For certification. And going through and like. Walk through on. Using the CNF test suite and other stuff there. If that's of interest. For folks. Please pass it on. Jeffrey, maybe, you know, any of the. Books there at Dell or whatever. Matrix. Oliver. No, you all have been using it, but. Maybe we'll see all there as well. At least at the event. That's it, I think. Let's take a look at the core class. So let's say. You want to look at the air gap. Jeffrey. Yeah, I just. If you all have any. Things like I'm not 100% sure. What I need to do to actually close it out. So. I think there are some things that are more of. I would call my preference choice and grammar and language. And if you disagree and think that it's clear enough, then just keep it as is. And let's see. Do we have any. Thumbs up for you. None. All right. I apologize. I need to step away for two seconds. All right. But I think like there wasn't a past. And then it got taken down because of edits and stuff. So. All right. This is actually talking about an external thing. So that shouldn't be a blocker. It's fine that it's talking about the glossary. Oh gosh. Okay, sorry about that. I'm back. No worries. All right. So I was just trying to run through them. The very first one looks like a action item. External. I think if, if you're going to do anything, then like this talking about putting it in a CNCF glossary, if you want to do something, I would say create an issue for this action item. And otherwise there's nothing. You, and there's not much to do here. Well, I guess it's great to definition and then it go upstream. So that one's something you could look at. The next one is. I'm debating on what air gap and source and upstream. Some of those we kind of like squashed. Like I said, when I was going through the comments, there's not like, other than like some external stuff, but I kind of wanted to like finish this first before I started creating new issues is like, I don't see anything like, you know, this needs to be fixed for us to be able to. You know, be comfortable closing this PR. This one seems like something that. And might be an update versus a blocker right now. Trying to see if there's any real blockers other than right now, the only thing I'm seeing Jeffrey is maybe this definition here. Air gap environment. The rest of it seems more of. Normal discussions that happened or things that could be someone can bring back up as an update later. Another conversation here, but not a blocker. The definition that would go in a different PR, right? Like, and not only that. So, I mean, this is one of the things to you. I don't know if I agree. Like. I mean, air gap. You know, that's not like something that we came up with. Like, I mean, maybe we just find a link that we like. I mean, we put it in there, but like, I can feel like, you know, this is one of those things where we got in trouble early on, like, do we really own the definition for air gap? You know, right. I would argue, no, but isolated environment. All right. I don't say anything that's a big blocker. But in fact, I didn't realize that the air gap was at the bottom. And if you were going to add a link to something that's upstream, read more over here, that's fine. Well, I added that definition. And like I said, I think the only thing left was, you know, it wasn't like as perfect as Ian wanted it. But I haven't seen him. So I don't know, like, this thing has just been sitting there forever. And I just not quite sure what to fix. So. I'd almost rather just submit it. And if people want to tweak the definition, just put a new PR in and we'll just massage it. Yeah, I think it's good enough. There's some mine. Oliver, have you. Can you do another review or do you feel like you've from the past when you've looked at this, it's good enough that you could give a. Approval. Yeah, I can do that. But it's also just a user story, right? Like it's not a. Written in blood proposed best practice. Shall. Exactly. It's just the exact. You have a title. That's actually written there. I mean, I'd say good. Okay. In fact, I did say good. So. If it looks good to you, then please give a looks good to me. Thumbs up. You're on it. There now you're on it too. I was actually going to see if there's a startup that my friend went to. And their whole business model is doing secure Kubernetes software deployments in air-gapped environments for the DoD. So I'm kind of hoping maybe I can get them to. I mean, it's DoD, but they do kind of service providery things. Maybe we can get them to help us with some of the best practices around air-gaps since that's their bread and butter. All right. Okay. Let's go back here. So. We can come back and look later. I guess. Oh, we got several there. Thanks y'all. I don't think we updated the. We have a nice. One, two, three. I don't think that's. Did we update the number that we need? I don't believe so. I'm not going to upvote my own though. That seems kind of cheating. Yeah. You can, you can upvote it. We just wouldn't count it, right? I did great. That's what you meant to put it. Okay. Three reviewers. It still says five. Oh, that's five. Reviewers minor. We may have updated it. She's at least three viewers. Merge up for approval of three. Yeah, we did update it. All right. It's done. Thanks, Jeffrey. Yeah, no problem. Sorry, it took so long. Hey, we're going to get going now. Okay. Let's see here at f5. Right. What's going on? Why is this merged? Yeah, this is just a, I don't think that these. This is one of the minor changes. That we can do without having as many. Full request latest template. We can use existing best practices. Change the interest. Fix some learning issues. All right. Let's see what we're doing. What list? Okay. Word list. Workload. Context. You haven't been making completely optional. Or is that optional? All right. Trade offs constraints. This is matching up to how we've been doing things. Yeah. I'm okay with it. Same workload context. Just proposal. No, it's constraints. Let's see what he did. Oh, he didn't fix the title. Workload context. All right. I'm good with this. What about y'all? Works for me. I'll go in and. Bless it. Oliver. What do you think? Good improvement. What do y'all think? I'm looking at it now. All right. My question. Oh, I guess I can put more people on this. That's good to me. Why does mine say fix things? I didn't request. I must hit the wrong button. Oh, I did. I feel like they may have swapped this. I defaulted.  No, I don't think they did. All right. That's it. We made it through there. All of the poor quest. It's clear. All right. Anything else for today? It's time to get some new best practices. And we can talk about that. Next time. Yeah, sounds good. I'd like to. Set up some working sessions and let's just start. Idea and like writing some of them out. Sounds great. All right. Have a great Monday, everyone. Yeah, have a good one. Cheers. All right. Have a great Monday, everyone. Yeah. Have a good one. Cheers. All right.


Welcome everyone to another Knox Viva Live video. In this one I'm going to be talking about how narcissists are so cruel to those they love. Or at least those they say they love. Those they profess they love. Because the truth is they don't really love anyone. They don't even love themselves. They project their own self-hatred onto you. Their own insecurities. Their own deficiencies. Their own flaws and imperfections. Their own faults and mistakes. That's what they put onto you. That's what they assign to you. And that's what makes it so easy for them to devalue you. They make some see you as though you're worthless or beneath their consideration. And then they use that as an excuse to punish you. So that is how they can be so cruel to you. They can be cruel because they project everything that they hate about themselves onto you. They disown those parts of them and assign it to you. And then they use that as the motive or reason for them abusing you. For them being so cruel. But many of us we look at it and then we self-loathe. We see it as though they must be right. There must be something wrong with us. We're not good enough. We're doing something wrong. Because at the time maybe we don't understand the mind of a narcissist. We don't understand that all they're actually doing is projecting. They're deflecting. They're disowning things they don't like about themselves and assigning it to their victim. And then using that as a reason for abusing them. Because something has to happen with these parts of themselves that they choose to disown. You can see from any narcissist that they don't take accountability for their actions. They don't self-reflect. They don't introspect. They don't look at themselves for how they actually are. So something has to happen with those parts of themselves that they choose to disown. And that goes on to you. They assign those parts of themselves to you. The parts of themselves that they don't like. And then that is why they devalue and degrade you. They don't even know you. They never sat down with you and took the time to get to know you. They don't even know who you are. They don't even know who they are. And how can you know someone else if you don't even know yourself? So don't take it personally. It really has nothing to do with you. And it has everything to do with them. That's how they're so cruel to those that they say they love. I'm at the beach today. It's a beautiful day. The sea has a nice green colour. I've got bright yellow sand there. It's really a perfect beach. I'm just out here making the most of it. I'm enjoying the views. I'm enjoying the sunshine well at last. And yeah, that's all I've got to say for this one. I hope that it's been helpful for you. If it has, please give it a thumbs up down below. And share the video. Click the subscribe button. And also click to receive all of the notifications for my future videos. For one-on-one coaching sessions, you can go to my website to book. It's narcsurvivor.co.uk. And check out my Instagram as well. It's Narc Survival YouTube and Instagram. I'm putting up new pictures and videos of my travels on there every day. And I also have some narcissistic abuse quotes on there too. And I've also put my own short videos on there as well. So check out my Instagram. It's Narc Survival YouTube. I hope to see you on there. Anyway, that's all for today. Thank you all for joining me. And I will talk to you in another one very soon.


If you're looking for a great edge-of-your-seat action adventure, The Riverwild has you covered. This thriller features Oscar winner Meryl Streep and footloose star Kevin Bacon. The movie came out in 1994. It's rated PG-13. I highly recommend it. Today, however, I'm going to be talking about Riverwild, the 2023 reboot that Netflix shout-out on its platform. Let's begin. According to IMDb, this is also called The Riverwild, but the title on the poster is Riverwild and that's what it says on Netflix. So what are we doing here? What's going on? This movie is also PG-13. It's an hour and a half long, and it has almost nothing to do with the original version, which I guess is kind of a pro because they're really two different movies altogether. The only thing they have in common is they are in fact going down a wild river. No, the movie doesn't have Hollywood royalty Meryl Streep involved, but it does make up for that by having Gossip Girl star Layton Meester. So, not the same at all. This is another Netflix movie in spirit only. The biggest positive I can say is it's an hour and a half long. It doesn't have an original score. Instead, it has two or three indie songs by probably the same band, maybe the brother of the director. I don't know who. I've never heard these songs before. It doesn't really matter. They're not very good. They're not interesting, and that's basically everything about this movie. And that doubly goes for the main star Joey, played by Layton Meester. She's just kind of a down on her luck, chip on her shoulder character, pretty quiet, pretty timid.  She and a couple of her gals go on a whitewater rafting adventure with two guides, one of which, a sketchy burnout named Trevor, fresh out of prison. He's definitely not going to be a problem in this film. It turns out he in fact is going to be a problem in this film, as pretty early on, he almost kills her best friend. And then the rest of the movie is really Trevor and the fam trying to get down the river into Canada so that he doesn't have to go behind bars again. Here's what you have to look out for. Some decent drone footage once in a while, some shaky cam footage occasionally, very mediocre premise. Very lackluster action scenes, an extended 20-minute scene where the characters sit around in the woods during the day, but the movie presents it at night, they just put the filter on it. I can't stand this look. It always looks bluish, boring, and artificial. Now I actually watched The River Wild with my family, with my two kids and wife a couple years back. They really dug the film. I remember liking it when I was younger. It still holds up nicely. If I were to show my kids this version, they would be checked out instantly. There's just nothing interesting happening.  So I was just sitting back, eyes glazed over, waiting for it to end. I paused it every 25 minutes or so just to see how close I was to that hour and a half mark. This is a watchable movie, but also why would you? There are so many better options, especially considering it has the same name as one that's better. And there's really no reason at all for this to be called River Wild, except for to piggyback off of the name River Wild. Not that it's a hot item right now, but you have people my age and older that do remember the old one. So they'll see this name show up. It might pique their interest and they might jump in. That's exactly what happened to me. So it works. The system works. I guess it's less insulting than calling it River Wild 2, but not much. I mentioned this movie's PG-13 towards the end of the film. There is a decent amount of blood in a scene, so I'm a little surprised they actually got away with the PG-13 rating. This movie also has a lot of shots of Layton Meester. I don't know if I'm saying that name right. A thousand apologies if I'm not. There's a lot of unattractive close-up shots of her just going like and crying and breathing hard and I don't want to see it. It's not pleasant to look at. They clearly didn't give two shits about this movie. They unceremoniously threw it out on the platform. I didn't see any talk about it coming out. It just showed up. So I don't feel like I need to talk any more about this movie. You don't need to watch it. If you did for some reason, let me know in the comments where you're like, oh my god, a new River Wild finally. It's what everybody's been wanting. It was amazing. Adam, you're completely wrong on this. It really elevated the material from the original and took it in a far more interesting way. Let me know. Please like the video if you had a good time. Subscribe for more movie reviews. Lately I've been trying to play ball and review more streaming things, mostly on Netflix. That seems to still be the biggest, most popular app that people are watching garbage on. So I'm doing my best to get those out as well. I'd love to have you stick around and hopefully I'll see you next time.


Be gwybod ni'n gwybod ynghyd? Mae cygarfeyddau tyfu arfermarmar, Mark McDonald, ond bydd yn cael y cyfrifidiad o cyfrifidiadau cyfrifidiadau. Rydw i'r o gyfrifidiad ydi i gwaith o gyfrifidiadau dedifuedd y gallai bod gydag ddigonwy o'i gyrwbeth o'r cyfrifidiadau. Ieithyllwch, Mark McDonald. Mae Gweinidog wedyn yw cyfrifidiad o'r cyfrifidiadau. Mae'n gyfrifidiadau yn cael gweld ar complement y rhai oherwydd jyrwydlu'r cyfrifidiadau ac pam y cyfrifidiadau nawr i chi'n llwyddo'i amherwydd iawn llawer o'ch fodewch i whaloeddiaeth y swyddfaeth deinkling ym hal stress acんでiludd o'r troi rhyw bwrdd cael ei leiaf o hybr honno. Ieithi g scenarios pen yr ysgolwmp mai maewch chi wedi'u bithasig a nhw'nll interim iawn i rhwng ei aaig i gael ym gumitä yn swyddfaeth syniadol i'r chwangpelu i garchedau ni, I announced measures to help to achieve secure, safe and loving homes for more children and young people more quickly. We are leading work to improve Scotland's child protection system, including reviewing the law to ensure that it provides adequate protection against all forms of abuse, neglect, violence and harm. For more than half a century, the legacy and influence of the coal brandon report has resonated through our children's hearing system and now underpins the getting it right for every child approach. We are rightly proud that in Scotland we continue to respond to children's deeds in the context of their needs. As our understanding of the impact of poverty, deprivation, abuse and neglect grows, we know that children and young people whose childhoods are compromised by their circumstances are also more likely to engage in risky behaviours, including those who might risk their own safety as well as others, and bring them to the attention of police and other agencies. That is backed up by recent research conducted by the Scottish Children's Reporter Administration into the backgrounds of 100 offending children under 12, which showed that three quarters had previous referrals to the children's reporter, one in four had been victims of physical or sexual abuse, more than half had educational issues and more than half had previous long-standing involvement with children's services. The evidence tells us that children under 12 who engage in harmful behaviour are primary school-aged children who tend to be disadvantaged, victimised and vulnerable through no fault of their own. We have already acted to address this by raising the minimum age of prosecution. In 2010 we changed the law with support across this chamber so no one under 12 could ever be prosecuted or sentenced in the criminal courts. That was a significant reform that has helped to ensure that children are kept out of the criminal justice system. However, those children have continued to face consequences as a result of their previous harmful behaviour, including through the disclosure of such behaviour via criminal record disclosures. Moreover, the low age of criminal responsibility in Scotland and indeed the UK has continued to attract the attention of the United Nations Committee on the Rights of the Child, including in its most recent concluding observations from August this year. I again called on UK Administrations to raise the minimum age of criminal responsibility in accordance with acceptable international standards. I can announce today that we will raise the minimum age of criminal responsibility in Scotland from 8 to 12 years and we will introduce a bill in this session to do so. The establishment of the advisory group last year by the Cabinet Secretary for Justice was a necessary and sensible step to examine in detail the implications of raising the age to 12. I thank all the members of the group for sharing their knowledge and insight. The group looked at four key areas—the management of risk in relation to children's behaviour, changes that may be required to the children's hearing system, police powers and issues in relation to disclosure certificates and the weeding and retention of non-conviction information. The advisory group represented a wide range of disciplines, including those working with children and with victims, as well as the police and the Crown Office. It reported in March 2016 with a number of recommendations that we have consulted on. That consultation ran from March to June, with 95 per cent of all respondents supporting an increase in the minimum age of responsibility to 12 or above. The overwhelming support was across the board, including statutory agencies such as the police, organisations that support victims of crime and charities that support vulnerable children. We also undertook engagement over the summer, with key groups likely to be affected by any change in the law, including young people themselves. Throughout June and July, we listened to more than 200 children and young people, including those whose childhood experience has resulted in early contact with the criminal justice system, as well as those who have been victims of child offending. I thank them all for taking part in sharing their experiences and providing valuable insight into the issue. We have taken time to consider the content and implications of the advisory group's report, the springtime consultation and the summer engagement results, along with the lessons of data and independent research. The case for change is now clear and compelling, but it is important that we address remaining concerns that some might have from changing the law. There must be appropriate safeguards to deal with not only exceptional cases, but to all types of cases for under-12s, especially where police and agencies do not get co-operation from parents and carers. We therefore intend to bring forward a bespoke package of police powers to ensure that the police can investigate harmful behaviour involving children under 12 so that all necessary steps can be taken to keep them and others safe. We also intend to ensure that there are powers to allow police to seek a warrant to take forensic samples to investigate an incident where a young person, their parent or carer has not provided consent. To ensure the protection of other children and vulnerable adults, it will remain possible to disclose relevant information relating to serious incidents involving a child under 12. That disclosure process will provide the right balance between the best interests of the individual and the need to protect the public from harm. Where young people have demonstrated harmful behaviour in early childhood and continue to do so as they move to adulthood, specific arrangements to manage and monitor risk will be put in place. I want to assure members that raising them in major criminal responsibility will not remove the need to maintain the current range of interventions used to address harmful and risk-related behaviour by children. Those include our successful whole system approach to youth justice and compulsory supervision through the children's hearing system. That includes the power to place a child in secure accommodation if considered necessary to protect the child or the public. The advisory group rightly required to consider how the exceptional cases might be dealt with if the age of criminal responsibility was increased. While the James Bulger tragedy 23 years ago continues to cast a long shadow, it is important to note that there has been no similar Scottish case in that time. The possibility of serious cases has to be contemplated but should not distort our overall approach. Sensible and proportionate safeguards will be put in place to address those cases. As the law currently stands, if a child under 12 killed someone, he or she would not be prosecuted in court but instead referred to the children's hearing system on offence grounds with lifelong disclosure of the offence applying. However, in future such a case would still be referred to the hearing system without reliance on finding offence grounds proved but with all the current powers and interventions remaining available. Civil disclosure into adulthood would continue to be possible and will occur when there is a compelling justification to protect the public. Action taken to manage risks posed by young people who have shown a capacity for harmful behaviours will integrate seamlessly with the steps that are already available to manage risks posed by those over 18. It is important to place the proposed change in context. Over the past 10 years, there has been a large and sustained reduction in youth crime referrals. The number of children under 12 involved in harmful behaviours is small and reducing. Only a handful require compulsory measures of supervision. Across Scotland in 2015-16, approximately four under 12s each week were referred to the reporter for offending, a tenth of what it was 10 years ago and a quarter of what it was five years ago. As we take forward this reform, it is vital that we address the impact of changing the law on the victims of children's harmful behaviour. To be clear, the harm caused to victims who may themselves be children will not be changed or undone by raising the minimum age of criminal responsibility. The needs of victims must continue to be met. Indeed, changing the law could offer a positive benefit to vulnerable victims. Victim support Scotland's view is that dealing with harmful behaviour using the civil standard of proof through non-offence grounds would enable facts to be established without the need for victims and witnesses to give evidence directly. That would minimise the impact on victims and witnesses. I know that many members will welcome this change in the law and I look forward to working with them to deliver that. I acknowledge that some will be concerned at the change in its impact. What should reassure them is that children and young people want this. Victims groups want it, police and prosecutors want it and the United Nations has called on us to do it. We can sustain and build public confidence by anticipating and addressing the questions posed by the sort of exceptional cases that I have referred to, but we should not lose sight of the fact that those are very rare. This reform signals our commitment to a smart, evidence-led and rights-proof approach. It marks a major step forward in fulfilling a promise to our own young people to be genuine corporate parents by treating them as children first and acknowledging that in most cases it is unmet needs which give rise to harmful deeds. We have listened to children's experiences, we have considered the evidence, we have taken on board the views of victims and the expertise of justice agencies and we have a vision of the kind of Scotland we aspire to be. This is emphatically the right time and the right approach to raise the minimum age of criminal responsibility. I look forward to working with members across the chamber to deliver the reform in time for our year of young people in 2018. The minister will now take questions on the issues raised in his statement. I intend to allow around 20 minutes for questions after which we will move on to the next item of business. Members who wish to ask a question should press the request to speak buttons now. I call first on Douglas Ross. I thank the minister for early sight of his statement as well as the advisory group and stakeholders who contributed to the consultation earlier this year. Their feedback has been invaluable. The law society has emphasised that raising the age of criminal responsibility would bring it into line with the age of criminal prosecution and this seems a sensible approach to create coherence and consistency in the law. We, on those benches, will wait to see the full details of the Government's proposed legislation. Can the minister confirm whether the Scottish Government will introduce a standalone bill on the issue that the law society has recommended is the best approach? I also welcome the minister's sensitivity over the concerns that some will have regarding the proposal to change the law. Can he advise how the Scottish Government will, as he said, sustain and build public confidence to ensure that this approach will not be perceived as diminishing the seriousness of child and youth offending? Finally, the minister highlighted the horrendous death of Jamie Bulger. While I appreciate what he said that those cases are extremely rare, safeguards must be in place. The minister has mentioned those with regard to police powers, but can he confirm what other safeguards will be put in place for crimes such as this to ensure that the law continues to act as a deterrent and one that guarantees that the victims' families receive the justice that they deserve? I thank Douglas Ross for his constructive approach to the issue. In relation to whether we will have a standalone bill, the answer is yes. We will bring forward standalone legislation in relation to the minimum age of criminal responsibility. In terms of how we sustain and build public confidence, there is obviously an engagement that needs to be undertaken as we progress with the legislation. That will involve our understanding of how the legislation is to be drafted and then during the course of the legislation's passage as it is consulted upon. Those will provide opportunities. I have been very clear in my statement and would reiterate today that I want to work with members across the chamber to ensure that we deliver a package of legislation that meets not just the requirements that I have set out in the statement but also can meet the confidence of members across the chamber and also the wider public. I can give that commitment that we will work on a basis that looks to sustain and build public confidence. In relation to the safeguards, there were a range of safeguards set out by the advisory group. It would perhaps be probably stretching the Presiding Officer's patience for me to list them all in turn. However, what I can commit to do is to place a copy of that in SPICE for all members. That does not necessarily mean that that is what we will take forward, but it provides us with a useful starting point for consideration as we look to draft the legislation. For example, where in exceptional circumstances there is no co-operation from parents, it would enable authorities to take a child to a place of safety, interview, obtain and potentially retain forensic samples and crave a warrant to obtain further forensic samples. Those measures would be rooted in child protection procedures and powers that police already have available to them. That perhaps gives a flavour of the kind of approach that we would seek to take. However, as I have said, that is something that will be very much an iterative process based on consultation across the chamber as we look to draft the legislation from here. I thank the minister for an advance copy of the statement and welcome the announcement today that the minimum age of criminal responsibility will be raised to 12. From the advisory group to the consultation submissions to the minister today, the argument has been persuasively made for such a raise and it has the support of Scottish Labour in taking this forward. The minister will know that there is a debate around the extent of police powers. In relation to forensic samples, can he say today how long forensic information will be retained and on the issue of disclosures can he inform Parliament if there will be independent ratification, as called for by the advisory group. Finally, while a strong case has been made for raising the age, the Government will be aware that securing public confidence can at times be difficult. The minister must not underestimate the challenges that may be here. While, in his response to Mr Ross, he talked about the legislative consultation that there will be, it is important to recognise that that might not be enough. What else is the Government prepared to do to win over people's hearts and minds when it comes to this significant change? I thank Clare Baker for first of all outlining Scottish Labour's position of being supportive in relation to this and I look forward to working with Ms Baker and her colleagues taking this forward. In relation to the extent of police powers and the length of time in which samples could be retained and also in relation to independent ratification around disclosures, those are both questions to which I approach with an open mind and would be interested to hear views not just of other members but also other experts as well. As I have said, what we have at the moment is a suggested package of powers and safeguards which the advisory group have outlined, which I will place in Spice and provide us with a useful starting point. From that starting point, I take the view that we then need to consider what the best approaches would be in order to satisfy, as Clare Baker says, public concerns but also to ensure that children's rights are paramount in our considerations. In terms of the point around public confidence, one of the things that will help in public confidence are two things. Firstly, the broad range of stakeholders, including Victim Support Scotland, who have come forward and said that they are supportive of this measure. I think that if we have groups representing victims who say that this will bring benefit not just in terms of the approach to those children who are coming into the hearing system but also to those victims who will not find themselves being put through potentially having to give evidence directly, that will help to give confidence. I think that we will also give confidence that if we as a chamber are speaking in a supportive manner on this and taking that message out to communities and demonstrating that there is broad political support which can help to derive broad public support as well. I do not underestimate that there will be those who have concerns and I am keen to ensure that we address those in as many ways as we possibly can. Ten members are wishing to ask questions, so, as usual, if I could have short questions and, if possible, short answers were appropriate. Fulton McGregor to be followed by Margaret Mitchell and Mr McGregor. I welcome the increase in the age of criminal responsibility, which I believe is a progressive step, bringing Scotland into line with other European nations. Can the minister give further detail on why the decision has been made to set the age of criminal responsibility at 12? What evidence there is that this is the most appropriate age and how changing the law will contribute to the Scottish Government's desired outcomes for children? There are a number of factors that are taken into account when making the decision. First, the age of 12 aligns with the current minimum age of prosecution. It also meets international expectations from the UN. It reflects the age at which children are presumed to have capacity to instruct a solicitor, as well as existing presumptions around maturity, rights and participation in the children's hearing system. The proposed approach is founded on clear evidence, including the research that I highlighted from the Scottish Children's Reporter Administration about the vulnerable backgrounds of many under-12s who engage in harmful behaviour. The issues become more complex when children over 12 are involved with the risk of harm to themselves and others, greater and often higher number of offences involved. Changing the law allows us to continue to embed the GERFEC approach into how we support the needs of our most vulnerable children, considering the whole needs of children and making that our focus. I recognise that there are some who have called for the age to be raised higher than 12, but I consider that we have the balance right and should be guided by the evidence that we have gathered from the substantial engagement on this issue. The children's hearing system already deals with cases as appropriate, and lone numbers of referrals demonstrate that 8 to 11-year-olds are only held criminally responsible in exceptional cases. If the age of criminal responsibility is to be raised to 12, can the minister confirm that children's hearing system and any secure accommodation required is to be appropriately and properly resourced to deal with any exceptional cases that have involved recognised crime such as murder, serious and violent offences committed by the under-12s? I thank Margaret Mitchell for her question. She will be aware of the on-going work around the Children's Hearing Improvement programme. I have a meeting later this afternoon with Children's Hearing Scotland where I will be discussing with them that programme, but also the implications of the statement will be discussed in that meeting. We are currently undertaking an approach that is looking at the skills of panel members and the approaches that are taken within children's hearings. To put some of that into context, if we take the 2015-16 data that we have available to us, the total number of referrals to the panel were 210. The number of hearings that took place on offence grounds were six. The number of referrals does not necessarily relate to the number of hearings that take place in relation to offence grounds. We are talking about exceptionally small numbers here. While I recognise the resource question that Margaret Mitchell has highlighted, it is worth reflecting on the numbers that we are talking about when we look at referrals versus those where hearings take place. Beyond that, compulsory measures take place is often much lower than those that are referred in the first place. I welcome the minister's announcement today. It is a move that, in my view, is long overdue. The minister will be aware that, if we want to achieve that fairer Scotland that he highlighted in which children are treated equally, embedding the UN convention of the rights of the children in all relevant policy areas is key. Can the minister advise whether our child rights focus approach was taken when exploring the issue, the implications of changing the law for children and how that will and was achieved? I thank Christina McKelvie for that question. I can confirm that, yes, this approach was taken very much from a children's rights-proof perspective. A child rights and wellbeing impact assessment was commissioned as part of the review. I am happy to arrange alongside the advisory group recommendations that I committed to Douglas Ross, which would be placed in Spice, to have that document also placed in Spice so that members can be reassured that a child rights agenda was absolutely at the heart of this before we took it forward. As the minister is aware, I have a keen interest in children and families affected by imprisonment. The advisory group points out that children who get involved in serious, harmful behaviour do so because of a range of difficulties in their home lives, including parental imprisonment. What actions will the Government take in line with her statement today to support children with such difficulties to prevent them from negative outcomes, including imprisonment in later childhood and adult life? I thank Mary Fee for that question, and I recognise her long-standing interest in the area that she highlights. I think that Mary Fee touches perhaps on areas that sit outside what I have referred to in my statement, but nonetheless are just as important and just as crucial. In relation to the approaches that we want to take, I am very heartened by a lot of the good work that is being done through our prison system currently. In relation to the approach that is being taken to, first of all, empower those parents who are imprisoned to ensure that they continue to play a positive role in their children's lives, both from the position of being imprisoned when their children come to visit, but also upon release as well. The approach that is being taken to support children to better understand the nature of the justice system, particularly where it relates to parental incarceration. There is a lot of good work that is being done out there. Part of that is about joining that work up and making it more widespread. I am absolutely happy to work with Mary Fee in relation to that, given her depth of knowledge and interest in the subject. I thank the minister for a very early sight of the report and the evidence-based content that the Green Party will support the direction of travel on, particularly in relation to the UN rights of the child, which is very welcome. The report talks about bespoke police powers and the experience of police officers that it is very challenging to deal with young people, particularly young people in offending situations. An experience elsewhere with domestic violence and child protection has shown the benefit of collaborative working across agencies and the third sector. Will there be a training package put in place in support of any legislation that is forthcoming that will ensure that the best practice of cross-party interagency and third sector working continues? John Finnie highlights an important point in that we have to ensure that the appropriate approaches are taken in relation to the children who are going to be involved. As I have said, we start from the basis of taking an open mind. We have a list of recommendations from the advisory group, which give us a starting point, but that is not the end point and there will be discussion to be had. I am interested in the points that Mr Finnie raises and where there are good examples of that interagency working. We should definitely try to ensure that that is something that happens across all areas rather than perhaps happening in pockets. I am happy to work with Mr Finnie and look at those examples as part of the process. I thank the minister for early sight of his statement and warmly welcome the decision to move ahead with raising the age of criminal responsibility and looking forward to working with him on the detail of that. He perhaps could have taken time to acknowledge the pivotal contribution of my former colleague, Alison McInnes, whose amendments to the criminal justice bill led very directly to the establishment of the advisory group, whom I thank and whose recommendations the Government is now rightly taking forward. In relation to those proposals, can the minister advise how the powers in relation to disclosure will avoid undermining efforts to address concerns of many campaigners that the actions of a child aged 8 to 11 will result in that child having a record that follows them into adulthood perhaps for the rest of their life? Can the minister also advise the chamber on whether his proposals will have any retrospective effect for those who have a record based on actions or behaviour that took place when they themselves were between the ages of 8 and 11? First of all, I agree with Liam McArthur and put on record my gratitude to Alison McInnes for the work that she undertook in the last Parliament in relation to that. I know that Liam McArthur will understand that the reason why the Government chose not to accept Alison McInnes' amendment was on the basis that the advisory group's work was on-going. I think that we all received letters from the Children's Commissioner to that effect, asking us to allow the advisory group to conclude its work. However, I put on record my thanks to Alison McInnes. She is somebody who I think that this Parliament misses greatly, while she and I were often in disagreement. I never had occasion to find her disagreeable. In relation to how we take matters forward in relation to both the powers around disclosure and retrospective effect, in exceptional circumstances the disclosure via what would be class' other relevant information would be possible. That would be essentially taken forward probably in exceptional circumstances depending upon seriousness of offence. Again, that is work that has to be undertaken to ensure that we get that balance absolutely right. In terms of the retrospective effect, we need to give that some careful consideration in relation to whether it is possible and also what the outcome of that might potentially be in relation to some of those, as I have identified, potentially serious cases that exist out there. I am happy to look into those matters. As part of the work that I want to do across the chamber, I am happy to discuss further with Mr McArthur as we take forward the legislation. Will the minister give any further detail on what arrangements will be put in place to ensure monitoring and risk management for young people who have demonstrated harmful behaviour in early childhood offending and who continue to cause concern as they become adults? Children can and do change. That is fundamental to the Scottish concept of social education and our reintegrative model. As I outlined in my statement, we need a system that reflects that and furthers our approach to addressing needs as well as deeds. For young people, nearing their 18th birthday, appropriate plans should be in place to manage risks, ensure that they are shared with all relevant agencies, with responsibility for supporting that young person and managing any potential risks as they are currently. Additional safeguards will be put in place for the young person moving into young adulthood whose behaviour has been assessed to continue to be a source of serious concern and where compulsory measures of risk management are considered necessary and proportionate. That is the principle on which we begin in relation to that. Again, it is work that will be taken forward as part of the legislation being drafted. A very small number of children can be guilty of conduct of the most serious kind. The question in the public mind will be if they are capable of serious criminal conduct, why should they not be dealt with on the basis of that conduct? My question, and I wonder if the minister could give any commitment on this today and something that may allay the fear in people's minds, is if someone, when an adult commits a crime that they have conducted themselves in a certain way that would have been criminal but for this change in the law, will the previous conduct be taken account of for the purposes of sentencing the sex offenders register, lifelong restriction orders, all of those issues that maybe the general principle is all the minister could commit to today and the detail will have to follow? As I have said, in relation to exceptional circumstances, disclosure into adult food will be a possibility. In relation to the point that Mr Lindhurst makes, I would essentially respond by saying that I do not think that it is acceptable to essentially say that we should categorise all eight-year-olds as being potential serious criminals and that is the approach that I take. I recognise that we need to do some work to ensure that where exceptional circumstances arise and the figures that I have given this afternoon would give indication that those are exceptional circumstances. I do not think that we should start from the premise that we categorise all those children aged between eight to 12 in that manner. In a statement, the minister explained how a child who is killed would be dealt with now and how they would be dealt with under the proposed legislation, but he also pointed out how rare that is. With the evidence of increased early sexualisation of children, a more likely case might be one of a child under 12 but over eight who committed a sexual offence. Can the minister elaborate how that will be dealt with and how further offending might be protected against appropriately, if necessary? I think that that comes back to the point about the identification of the vulnerability of children and the fact that the deeds are dictated by those needs and by that situation. In those circumstances, I accept that there will need to be interventions. As I outlined in my statement, the full range of interventions would remain available to the children's hearing system. I also think that there is work that needs to be done around the areas that Iain Gray identifies, and there is obviously work going on in other Government streams to look at things such as child sexual exploitation, sexualisation of children and the behaviours that arise as a consequence of that. It is about joining up those approaches to ensure that those children are prevented from those kinds of behaviours. Were those behaviours arise, firstly, they are dealt with appropriately to keep both that child and other members of the public safe, but also that we take the time to address the needs that underlie the deeds. In his statement, the minister referred to a bespoke package of police powers, and I wondered if the minister could elaborate on whether that package will give the police new powers to address harmful behaviour by children. As I outlined in my answer to Mr Ross, many of those powers are powers that the police currently have. Further detailed work on that is obviously required before draft legislation is introduced. As I have said, I am keen to involve stakeholders and indeed members in that work. As a starting point, I have said that I will place the advisory group's recommendations in SPICE in order to allow members to examine them in more thorough detail. I can confirm, as I confirmed to Ms McElvie, that a child rights and wellbeing impact assessment was commissioned as part of this process, which demonstrates that the proposals on safeguards and police powers have been rights-proofed at the design stage and that screening would continue as proposals are developed. That concludes the questions of the statement. We move on to the next item of business, but allow for a few moments to the front benches to change places.