text: if (timerclkTimerTimeout) clearInterval(timerclkTimerTimeout);
  var timerclk = require("timerclk.lib.js");
  var settings = require('Storage').readJSON("timerclk.json", true) || {};
  settings = Object.assign({
    "vibrate":10
  }, settings.timer||{});
  
  function showTimer(timer) {
    Bangle.loadWidgets();
    Bangle.drawWidgets();
    Bangle.setLocked(false);
    E.showPrompt("Timer finished!",{
      title:"TIMER!",
      buttons : {/*LANG*/"Ok":true}
    }).then(function(ok) {
      buzzCount = 0;
      if (ok) {
        timer.time += Date.now() - timer.start;
        timer.start = null;
      }
      require("Storage").write("timerclk.timer.json",JSON.stringify(timers));
      load();
    });
    function vibrate(counter) {
      VIBRATE.write(1);
      setTimeout(() => VIBRATE.write(0), 100);
      if (--counter) setTimeout(() => vibrate(counter), 250);
    }
    function buzz() {
      if ((require('Storage').readJSON('setting.json',1)||{}).quiet>1) return; // total silence
      vibrate(4);
      if (buzzCount--)
        setTimeout(buzz, 3000);
      else { // auto-snooze
        buzzCount = settings.vibrate;
        setTimeout(buzz, 600000);
      }
    }
    var buzzCount = settings.vibrate;
    buzz();
  }
  
  // Check for timers
  console.log("checking for timers...");
  var timers = require("Storage").readJSON("timerclk.timer.json",1)||[];
  var active = timers.filter(e=>e.start);
  if (active.length) {
    // if there's an timer, show it
    active = active.sort((a,b)=>{
      var at = a.time;
      if (a.start) at += Date.now()-a.start;
      at = a.period-at;
      var bt = b.time;
      if (b.start) bt += Date.now()-b.start;
      bt = b.period-bt;
      return at-bt;
    });
    showTimer(active[0]);
  } else {
    // otherwise just go back to default app
    setTimeout(load, 100);
  }
  