add dynamic history support