bunch of specs and validations