module pattern 1