Changes handling implementation and refactoring