btw sorry this one was a bit messy, I made some IDE changes in between