better specs and validations