revisted tocument init