Major refactoring of changes