I don't understand why do you restric to grayscale image in the Display3D class member.. Why not just storing an Alias to the given image ?