a module pattern template