general funcs update