make GMM to be generic based on Distributions.jl