reuse timestamp, don't call time.Now() 3 times