added error messages and more property rules