def __init__(self):

		self._engine = GithubEngine()
		self._user = None
		self._repo = None
		self._website = None
		self._current_version = None
		self._subfolder_path = None
		self._tags = list()
		self._tag_latest = None
		self._tag_names = list()
		self._latest_release = None
		self._use_releases = False
		self._include_branches = False
		self._include_branch_list = ['master']
		self._include_branch_auto_check = False
		self._manual_only = False
		self._version_min_update = None
		self._version_max_update = None

		# By default, backup current addon on update/target install.
		self._backup_current = True
		self._backup_ignore_patterns = None

		# Set patterns the files to overwrite during an update.
		self._overwrite_patterns = ["*.py", "*.pyc"]
		self._remove_pre_update_patterns = list()

		# By default, don't auto disable+re-enable the addon after an update,
		# as this is less stable/often won't fully reload all modules anyways.
		self._auto_reload_post_update = False

		# Settings for the frequency of automated background checks.
		self._check_interval_enabled = False
		self._check_interval_months = 0
		self._check_interval_days = 7
		self._check_interval_hours = 0
		self._check_interval_minutes = 0

		# runtime variables, initial conditions
		self._verbose = False
		self._use_print_traces = True
		self._fake_install = False
		self._async_checking = False  # only true when async daemon started
		self._update_ready = None
		self._update_link = None
		self._update_version = None
		self._source_zip = None
		self._check_thread = None
		self._select_link = None
		self.skip_tag = None

		# Get data from the running blender module (addon).
		self._addon = __package__.lower()
		self._addon_package = __package__  # Must not change.
		self._updater_path = os.path.join(
			os.path.dirname(__file__), self._addon + "_updater")
		self._addon_root = os.path.dirname(__file__)
		self._json = dict()
		self._error = None
		self._error_msg = None
		self._prefiltered_tag_count = 0

		# UI properties, not used within this module but still useful to have.

		# to verify a valid import, in place of placeholder import
		self.show_popups = True  # UI uses to show popups or not.
		self.invalid_updater = False

		# pre-assign basic select-link function
		def select_link_function(self, tag):
			return tag["zipball_url"]

		self._select_link = select_link_function