uniqueness added and other modification