better testing and validations