Finished refactoring(first refactoring package)