Use composite pattern to realize the real 3D