const dec_algs = Dict(
    :cholesky => choleskydec,
    :EG => EG,
    :MD => MD,
    :LEX_M => LEX_M,
    :MCS_M => MCS_M,
    :minLC => minLC,
    :maxLC => maxLC,
    :minTrig => minTrig,
    :maxTrig => maxTrig
)


function decompose(g::AbstractGraph, dec_type=:cholesky; kwargs...)
    cg, data = dec_algs[dec_type](g; kwargs...)
    cliques, cliquetree, nb_lc = get_decomposition_data(cg)
    return cliques, cliquetree, cg, nb_lc, data
end


function get_decomposition_data(g::AbstractGraph)
    cliques = maximal_cliques(g)
    cliquetree, nb_lc = get_cliquetree(cliques)
    return cliques, cliquetree, nb_lc
end
