add reduce penalty function