fixed timing logic