code simplicity
some sanity checks
Show alternative messages depending on the users capabilities