trying to implement lifetime behavior