Separate preferences' building logic from client.