switch from NSTimer to CADisplayLink