add some  history support