20130903
refactoring: Using module design pattern
conflict merge