preference merge