// attach to the struct a the ServeHTTP method, which turns MyHandler into an http handler to write responses given a request
// the http request is named: "r", sometimes it is conventionally named: "req"
// the http response is named "w", which you write data to, which you then send to the client as the body of the response
func (this *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	// http.Request has built in data for a URL_PATH
	path := r.URL.Path[1:]
	// logs the url path to the terminal
	log.PrintLn(path)
	data, err := ioutil.ReadFile(string(path))

	if err == nil {
		// write the response body
		w.Write(data)
	} else {
		// write the response header
		w.Writeheader(404)
		// write the response body
		w.Write([]byte("404 HTTP Error - " + http.StatusText(404)))
	}
}