most of the validations
final validations