Simplify selfUpdate(): use substr() instead of substring()
-forceNoCache: use already calculated startTime