poor 3d middleware layer