def __init__(self, core, builder, profile_path):
        """Loads base variables into the class."""
        self.schema_base_id = "com.github.skybon.obozrenie"

        # Internal configs
        self.general_settings_config_file = "obozrenie_options_general.toml"
        self.dynamic_widget_config_file = "obozrenie_options_game.toml"
        self.defaults_file = "obozrenie_default.toml"

        self.general_settings_config_path = os.path.join(os.path.dirname(__file__), self.general_settings_config_file)
        self.dynamic_widget_config_path = os.path.join(os.path.dirname(__file__), self.dynamic_widget_config_file)
        self.defaults_path = os.path.join(os.path.dirname(__file__), self.defaults_file)

        # User configs
        self.user_general_settings_file = "settings.toml"
        self.user_game_settings_file = "games.toml"

        self.user_general_settings_path = os.path.join(profile_path, self.user_general_settings_file)
        self.user_game_settings_path = os.path.join(profile_path, self.user_game_settings_file)

        self.dynamic_widget_table = helpers.load_settings_table(self.dynamic_widget_config_path)
        self.static_widget_table = helpers.load_settings_table(self.general_settings_config_path)

        self.settings_table = {}

        self.core = core
        self.builder = builder
    def load(self):
        """Loads configuration."""
        defaults_table = helpers.load_settings_table(self.defaults_path)
        user_general_settings_table = helpers.load_settings_table(self.user_general_settings_path)

        # Load into general settings table
        for group in self.static_widget_table:
            self.settings_table[group] = {}
            for option in self.static_widget_table[group]:
                # Define variables
                widget = self.builder.get_object(self.static_widget_table[group][option]["gtk_widget_name"])

                value = defaults_table[group][option]
                try:
                    value = user_general_settings_table[group][option]
                except ValueError:
                    pass
                except KeyError:
                    pass
                except TypeError:
                    pass

                self.settings_table[group][option] = value
                self.apply_to_widget(widget, value)
                self.bind_widget_to_settings_table(widget)

        # Load game settings table
        user_game_settings_table = helpers.load_settings_table(self.user_game_settings_path)

        # Set game settings
        for game in self.core.game_table:
            for option in self.core.game_table[game]["settings"]:
                try:
                    self.core.game_table[game]["settings"][option] = user_game_settings_table[game][option]
                except ValueError:
                    pass
                except KeyError:
                    pass
                except TypeError:
                    pass