refactoring package names and making it easier to understand