revive part1
revive part2