timer task now uses thread safe observer set instead of Observable module