sync before big modification
Refactorization part 1
refactorization