added unweighted functions