public static InstagramApiWrapper GetInstance(Configuration configuration) {
			lock (threadlock) {
				if(_sharedInstance == null)
					_sharedInstance = new InstagramApiWrapper {Configuration = configuration};
			}

			return _sharedInstance;
		}
		public static InstagramApiWrapper GetInstance() {
			if (_sharedInstance == null) {
				if (_sharedConfiguration == null)
					throw new ApplicationException("API Uninitialized");

				_sharedInstance = new InstagramApiWrapper();
			}
			return _sharedInstance;
		}
        public static InstagramApiWrapper GetInstance()
        {
            if (_sharedInstance == null)
            {
                if (_sharedConfiguration == null)
                {
                    throw new ApplicationException("API Uninitialized");
                }

                _sharedInstance = new InstagramApiWrapper();
            }
            return(_sharedInstance);
        }
		public static InstagramApiWrapper GetInstance(Configuration configuration, ICache cache)
		{
			lock (threadlock)
			{
				if (_sharedInstance == null)
				{
					_sharedInstance = new InstagramApiWrapper();
					_cache = cache;
					_sharedInstance.Configuration = configuration;
				}
			}

			return _sharedInstance;
		}
        public static InstagramApiWrapper GetInstance(Configuration configuration)
        {
            lock (threadlock) {
                if (_sharedInstance == null)
                {
                    _sharedInstance = new InstagramApiWrapper {
                        Configuration = configuration
                    }
                }
                ;
            }

            return(_sharedInstance);
        }
        public static InstagramApiWrapper GetInstance(Configuration configuration, ICache cache)
        {
            lock (threadlock)
            {
                if (_sharedInstance == null)
                {
                    _sharedInstance = new InstagramApiWrapper();
                    _cache          = cache;
                    _sharedInstance.Configuration = configuration;
                }
            }

            return(_sharedInstance);
        }