simplify -> weight is external to the algorithm