add redo/undo for panel class