first implementation of preferences