Copied over files from github.com/mfreema5/COM530-spwp.