add set() function