    HistoryTree::HistoryTree() : Tree<Pair<std::shared_ptr<Observation>, std::shared_ptr<Action>>>()
    {
    }

    HistoryTree::HistoryTree(number max_depth) : Tree<Pair<std::shared_ptr<Observation>, std::shared_ptr<Action>>>(max_depth)
    {
    }

    HistoryTree::HistoryTree(std::shared_ptr<HistoryTree> parent, const Pair<std::shared_ptr<Observation>, std::shared_ptr<Action>> &item) : Tree<Pair<std::shared_ptr<Observation>, std::shared_ptr<Action>>>(parent, item)
    {
    }

    std::shared_ptr<HistoryInterface> HistoryTree::getPreviousHistory()
    {