changes from M++