tests and validations