updated func.