error checking, sanitization and properties support.