module pattern update