better reviveWithMembers()