working 3D solver !