func createHandler(connection *dbus.Conn) func(http.ResponseWriter, *http.Request) {
	return func(w http.ResponseWriter, r *http.Request) {
		r.ParseForm()
		key := r.PostForm.Get("key")
		action := r.PostForm.Get("action")
		http_status := http.StatusOK
		if unit_actions, action_exists := ConfigData[key+"-"+action]; action_exists {
			for _, unit_action := range unit_actions {
				result_channel := make(chan string, 1)
				var err error
				var result string
				switch unit_action.Action {
				case "restart", "start":
					_, err = connection.RestartUnit(unit_action.Unit, "fail", result_channel)
				case "stop":
					_, err = connection.StopUnit(unit_action.Unit, "fail", result_channel)
				}
				if err == nil {
					result = <-result_channel
				} else {
					fmt.Printf("Systemd Unit ERROR: %s", err.Error())
					w.Write([]byte(err.Error()))
					http_status = http.StatusInternalServerError
				}
				if result != "done" {
					fmt.Printf("Unexpected API result: %s", result)
					w.Write([]byte(result))
					http_status = http.StatusInternalServerError
				}
			}
		} else {
			http_status = http.StatusNotFound
			fmt.Printf("NO ACTION WAS GIVEN.")
			w.Write([]byte("NO ACTION WAS GIVEN."))
		}
		w.WriteHeader(http_status)
	}
}