After learning a lot of new stuff from my first attempt to this game, I try to use this knowledge and make a less messy and cleaner code