combined 2d and 3d recons into generic routine