redesign the packages and separating the classes