Refactoring D2DUtil and  D3DUtil