user settings algorithm