add "set" function