basic validations and errors