add module pattern, add examples