For me at least, there is not sufficient preparation or explanation of Remix to easily get through these lessons. For example, even after reading all of the transcript for this lesson and the Remix link for action, and watching what I found to be a totally unhelpful video explaining nothing, I'm trying to get a basic handle of what is going on. I can certainly figure out what the code needs to look like and can see it working when it renders in the browser, bu I have zero explanation of what is going on in that code. So, I figure out how all the imports are required. I can even figure out the ones needed for the extra credit exercises, but I don't understand how the loader function is working. I guess it's because you already have the db connected? Although I don't see that in the playground that is the case. What I see in the DIFF is not remotely what is actually in the files, especially the solution file, which has a bunch more imports than the DIFF shows. While the first 5 lines of code I see in the DIFF appear to be from the playground file (they don't include the as yet to be included imports), they do show the difference between the playground and solution files (adding the Remix redirect import), the lines 24-26 are clearly not from the playground file. The following unnumbered lines include in pink highlight the ones that are from the playground file and the green highlight ones what should be added (they're from the solution file). The loader function that comes after the imports is left out. OK, it exists in both the playground and solution files, so it's not a difference. The action function there is far more helpful than anything I got out of the Remix documentation. I can't figure out for the life of me why the playground file is missing the code that was already added in the solution for the Forms lesson. Why are we going back over something already done? Couldn't each succeeding lesson retain what was already solved in the prior lesson? So, OK, the missing code we had already added is reinserted for the NoteEdit() function, with the one single edit of changing GET to POST. I got the sort-of explanation about never using any other method than GET or POST from the embedded video (about which I have posted a question because it was impossible for me to follow and reproduce). Lucky for me I have been saving my edited lesson relevant playground files (having learned that once you reset for the next lesson all your work is wiped out). So then to my trying to figure out what is going on with the completed and working playground edits so I can reproduce what is happening in the solution files. The general explanation is that we are getting formData from the request (in the action section of the code). If the loader() function comes first, I'm confused because I don't think we've connected the database yet, although that doesn't seem to be the case in either the playground or solution files. That return is apparently done in json. The action does not seem to be doing any note update, or is it. I don't understand the cancelled lines of information code in the solution saying "// @ts-expect-error :safety_vest: we'll fix this next..." Anyway, I'm guessing the code is updating (as it appears to do when I submit and reset edits). That would be the "use it to update the note" part. Still in the action part of the code, it does the "redirect back to the note's page" part. Now, is the rendering being done by the NoteEdit() function's return? Did the redirected data now refresh and reload the form on the front end after the Remix backend POST fetch? I'd like to understand the steps going on, their order, and relations. Maybe I'm asking too much?