preference encoding