validations and specs