changes , continue refactoring