Full commit of my code, final version.