added preferential attachment option