validations and made slack optional