implement "set!"