added lifecycle helper