new change owner algorithm
refactoring