implemented history class