Added TimeGate and added auto reset behavior to abstract base class.