13th update --- refactoring