6th version -- add 2D->3D