Maybe a little sketchy in some places (I think there were typos in at least one code block, or the wrong code block was printed...not sure).