copied in web stuff