why do we need this function? can't we use existing function?