a bit prettier and validations