change api of set