more accurate output timing