public Config reload() throws InvalidConfigurationException {
        if (CONFIG_FILE == null) {
            throw new InvalidConfigurationException(new NullPointerException());
        }
        if (!CONFIG_FILE.exists()) {
            throw new InvalidConfigurationException(new IOException("File doesn't exist"));
        }
        YamlConfiguration yamlConfig = YamlConfiguration.loadConfiguration(CONFIG_FILE);
        try {
            onLoad(yamlConfig);
            yamlConfig.save(CONFIG_FILE);
        } catch (Exception ex) {
            throw new InvalidConfigurationException(ex);
        }
        return this;
    }