added client clock skew compensation