updated R function