add preference API