use timestamp for check cache; close #9