added validations
added uniqueness