clean module pattern