updated funcs