some new function added