+function Session.sections(self, config)
+ self:t_load(config)
+ return self:t_sections(config)
+end
+
+function Session.set(self, config, section, option, value)
+ self:t_load(config)
+ return self:t_set(config, section, option, value) and self:t_save(config)
+end
+
+function Session.synchronize(self)
+ return uci.set_savedir(self.savedir)
+end
+
+
+-- UCI-Transactions
+
+function Session.t_load(self, config)
+ return self:synchronize() and uci.load(config)
+end
+
+function Session.t_save(self, config)
+ return uci.save(config)
+end
+
+function Session.t_add(self, config, type)
+ self:t_save(config)
+ local r = self:add(config, type)
+ self:t_load(config)
+ return r
+end
+
+function Session.t_commit(self, config)
+ return uci.commit(config)
+end
+
+function Session.t_del(self, config, section, option)
+ self:t_save(config)
+ local r = self:del(config, section, option)
+ self:t_load(config)
+ return r
+end
+
+function Session.t_get(self, config, section, option)
+ if option then
+ return uci.get(config, section, option)