checkout working scheduler
diff --git a/src/event-scheduler.cpp b/src/event-scheduler.cpp
index 1c892d6..be67aad 100644
--- a/src/event-scheduler.cpp
+++ b/src/event-scheduler.cpp
@@ -79,11 +79,9 @@
   m_invoked = false;
 }
 
-PeriodicTask::PeriodicTask(const Callback &callback, const Tag &tag, const SchedulerPtr &scheduler, const IntervalGeneratorPtr &generator, int repeat)
+PeriodicTask::PeriodicTask(const Callback &callback, const Tag &tag, const SchedulerPtr &scheduler, const IntervalGeneratorPtr &generator)
              : Task(callback, tag, scheduler)
              , m_generator(generator)
-             , m_repeat(repeat)
-             , m_indefinite(m_repeat > 0)
 {
 }
 
@@ -94,22 +92,7 @@
   {
     m_callback();
     m_invoked = true;
-    if (m_indefinite)
-    {
-      m_scheduler->rescheduleTask(m_tag);
-    }
-    else
-    {
-      m_repeat--;
-      if (m_repeat > 0)
-      {
-        m_scheduler->rescheduleTask(m_tag);
-      }
-      else
-      {
-        deregisterSelf();
-      }
-    }
+    m_scheduler->rescheduleTask(m_tag);
   }
 }
 
@@ -121,12 +104,6 @@
   setTv(interval);
 }
 
-void
-PeriodicTask::deregisterSelf()
-{
-  m_scheduler->deleteTask(m_tag);
-}
-
 RandomIntervalGenerator::RandomIntervalGenerator(double interval, double percent, Direction direction)
                         : m_interval(interval)
                         , m_rng(time(NULL))