add life callback