added some complexity reduction with timing control