module pattern for interface
module pattern for interface