with validations