finished module pattern