added model validations and failure scenario