functions updates