zhang250 & zhou86 Iteration 5:refactor

Refactoring