Added soft type functionality based on random