follow new WebModule spec