static void Main(string[] args)
        {
            #region CaseOne

            var augustWeatherForecastForQutaisi = new WeatherForecast("Qutaisi");
            augustWeatherForecastForQutaisi.Load(DateTime.Parse("2017/08/01"), DateTime.Parse("2017/08/31"));

            //we want to have weather forecast for july and august of 2017, we have 2 way to achieve this
            //1) create brand new WeatherForecast and retrieve data for july and august via remote api (time and resource intensive task).
            //2) BUT, in fact we already have weather forecast for august, so why don't reuse that data ?

            var julyAndAugustWeatherForecastForQutaisi = (WeatherForecast)augustWeatherForecastForQutaisi.Clone();
            //Now we only need to load July, since we already have august.
            julyAndAugustWeatherForecastForQutaisi.Load(DateTime.Parse("2017/07/01"), DateTime.Parse("2017/07/31"));

            #endregion
        }