add pre-condition validations