more validation and messages