[4.02][Refactoring] design improvements[TF,TJ,MP]
[4.02][Refactoring]Design improvements[TJ,TF,MP]
[4.02][Refactoring]merging[TJ, TF, MP]
[4.02]adding new files[TJ, TF, MP]