new timer class to work around bug in NSTimer when the mac sleeps