Fix #110: use nanoTime, not currentTimeMills()