* refactored property rules and validator