begin module pattern design