refactor for the classes. Plan to switch to a new branch.