MWL algorithm