reset to a stable history
optimize time engine
use TickEngine instead of SecondEngine, the former use not inheritance but use composition and has better preformance
fix conflicts