ADD: inefficient, but working 3D output