use more precise time calculations