added in a block multiplication feature so that way fitting and evaluating the likelihood are not so memory intensive and fixed the cluster_underlying_data so that it normalizes the outputs