static void Main()
        {
            Console.WriteLine("Proxy:");

            // assuming that the user selects a folder that has 3 images
            //create the 3 images
            IImage highResolutionImage1 = new ImageProxy("sample/veryHighResPhoto1.jpeg");
            IImage highResolutionImage2 = new ImageProxy("sample/veryHighResPhoto2.jpeg");
            IImage highResolutionImage3 = new ImageProxy("sample/veryHighResPhoto3.jpeg");

            // assume that the user clicks on Image one item in a list
            // this would cause the program to call showImage() for that image only
            // note that in this case only image one was loaded into memory

            highResolutionImage1.showImage();
            Console.WriteLine("\nNot proxy:");

            // consider using the high resolution image object directly
            IImage highResolutionImageNoProxy1 = new HighResolutionImage("sample/veryHighResPhoto1.jpeg");
            IImage highResolutionImageNoProxy2 = new HighResolutionImage("sample/veryHighResPhoto2.jpeg");
            IImage highResolutionImageBoProxy3 = new HighResolutionImage("sample/veryHighResPhoto3.jpeg");

            // assume that the user selects image two item from images list
            highResolutionImageNoProxy2.showImage();
        }