changes through refactoring