add history support