Refactor properties logic layer.
Further clean up properties validation.
Validate typed property values.