follow WebModule new spec