lifetime function added