added read_preference_method