replaced by deepopenstruct