history: add history support