first implementation of downweighting, needs more testing but seems to work