introduce history table
also generalize FatMove interfaces (calling code will do the decoding anyway).