extensible module design pattern