abstract Timer class