weight function add