Giving credit to JavaScriptIsSexy blog for helping me along the way