forces negative weights to error out