change animate to use sub-millisecond where possible