Borrowed from the webserver project, this closes #10
Note: some files may be extraneous.