This is the final after I got some feedback and stuff.