better module pattern