refactoring the package put all stuff in different files