fixed Life refactor