Added normalization and bounded weighting