new efficiency function added