preferences implemented