FULL CREDIT GOES TO @quocuy2009 I'm remixing this so I can learn a few things and also because this is awesome!