Fixed timer issue: used JVM high resolution time using System.nanoTime() for elapsed time