another wave of refactoring ...
Merge pull request #10 from lulurun/refactor

another wave of refactoring ...