Refactoring & implement history update

Refactoring the parser, also update the test case

Write the commenct how to determine the update date