reimpl timer using miniheap