I don't understand ```and h.weight```. Could you elaborate more? What happens if the user sets a weight to ```0```? And what happens when implicit weights are used (in that case they are usually all set to ```None```)