refactoring : classes are in different packages according to functionalities