history objects refactor